如何将文本文件的每一行写入CSV行

马克·克莱门斯

我是perl的新手,我正在尝试获取一个.idx格式如下的文件(实际上是文件)

 Monday       Foo Name             43212    
 Tuesday      Name Foo Foo         43252
 Tuesday      Name                 50322 
 Wednesday    Foo Name             53221
 Thursday     Foo Bar Foo Name     24353

我想将其输出为csv文件。该文件应该看起来完全像这样,除了CSV格式,以便Excel可以读取它。另外,我只希望包含星期二的行,以便CSV文件看起来像

 Tuesday      Name Foo Foo     43252
 Tuesday      Name             50322

在Excel中。我也有一些idx格式的文件formYYYY_Q.idx,其中YYYY是指一年Q指的是四分之一。我想遍历.idx我拥有的所有文件,并创建一个大的CSV文件,每个.idx文件Tuesday的开头都只有一行我到目前为止的代码是

 #!/usr/bin/perl

 use warnings;
 use strict;
 use Text::CSV;

 my $csvfile= Text::CSV->new({binary=>1,auto_diag=>1});
 $csvfile->column_names("Day","Name","Number");

 my @datalines;
 my $idxfile="form1994_1.idx";

 open(INFILE, "< $idxfile") or die $!;
 open(my $outfile, "> Master.csv") or die $!;

 while(<INFILE>){

      if(/^Tuesday/){

            chomp($_);
            push(@nsarlines, $_);

     }

 }

当我将open命令替换open(OUTFILE, "> Master.txt") or die $!;为while循环外的最后一行代码中包含以下命令时:

 print OUTFILE map {"$_ \n"} @nsarlines;

Master.txt文件看起来像我想要的

 Tuesday      Name Foo Foo     43252
 Tuesday      Name             50322

但是,如果我使用上面编写的open命令,请在while循环外执行以下操作:

 $csvfile-> print($outfile, \@test);

我得到了带有完整$_字符串的CSV文件,该字符串是.idxMaster.csv文件每个单元格中文件的一行我很难弄清楚如何使perl使得每.idx行成为CSV行WIHTOUT手动插入逗号$_(这不是一个优雅或理想的选择)。

我需要做的第二件事是我的文件formYYY_Q.idx都在同一目录中,我想自动浏览每个文件,取出以星期二开头的行并将其添加到Master.csv文件中(或者说,全部然后在末尾写入一次Master.csv文件)。我认为File::Find也许可以做到这一点,但是我还无法弄清楚如何使用它。

谢谢你的帮助。

阿维·特维特(Avi Tevet)

有两种使用File :: Find的方法。一种是使用该wanted功能将有关文件的数据添加到全局列表/队列/变量,然后在find调用后处理数据另一种方法是执行功能中的所有处理wanted

我个人不喜欢使用全局变量从函数中传递数据,但不幸的是,使用File :: Find是您的选择。这是他们执行此操作的示例:http : //www.perlmonks.org/?node_id=217378在示例中,他们使用%size哈希将数据传递出匿名wanted函数。这可能是最好的选择,您可以将匹配的文件名添加到全局列表中,然后遍历列表,将每个文件中的数据写入CSV。

另一个选项是在wanted功能中执行处理但同样,这是最理想的,因为你需要使用全局变量将信息传递wanted关于开放CSV文件的功能。

假设可以确保所有.idx文件都位于同一目录(而不是同一目录树)中,则另一种选择是使用opendir和readdir函数。http://perldoc.perl.org/functions/readdir.html

my $dh;   # directory handle
opendir($dh, $your_dir) || die $!;
my @idxfiles = grep {/\.idx$/} readdir($dh);
closedir($dh);

foreach my $idxfile (@idxfiles) {
   open(INFILE, "< $idxfile") or die $!;
   ... the rest of your code ...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将列表的每个元素写入文本文件的每一行?

来自分类Dev

如何将文本文件的每一行写入新文件并根据其内容命名?

来自分类Dev

Python熊猫如何将csv中的每个单元格写入文本文件中的一行

来自分类Dev

如何将增量计数附加到文本文件的每一行?

来自分类Dev

如何将文本文件的每一行解析为命令的参数?

来自分类Dev

如何将文本文件中的每一行另存为新文件

来自分类Dev

读取CSV以及如何将CSV文件的名称写入CSV的每一行

来自分类Dev

在文本文件的每一行开头写入脚本的文件名

来自分类Dev

Python:写入文本文件时每N个字符结尾一行

来自分类Dev

如何将数据追加到文本文件的同一行

来自分类Dev

如何将文本文件的第一行放在结束位置

来自分类Dev

Java FileReader:如何将文本文件中的每一行分配给一个变量

来自分类Dev

如何在文本文件中合并每一行及其后续行

来自分类Dev

如何循环文本文件的每一行并附加其他文本换行

来自分类Dev

如何循环文本文件的每一行并追加其他文本换行

来自分类Dev

如何将一个文本文件与大约二十六个其他文本文件进行比较,并在有匹配项时打印出每一行的某些列?

来自分类Dev

将文本文件中的每一行放入数组C#中

来自分类Dev

将文本文件的每一行作为numpy数组加载而不循环

来自分类Dev

将文本文件中的报价附加到每一行

来自分类Dev

将SQL查询结果的每一行另存为文本文件

来自分类Dev

将&& \添加到文本文件上的每一行(最后一行除外)

来自分类Dev

将多个批处理命令的输出写入文本文件的一行

来自分类Dev

如何读取文本文件的内容并为每一行运行命令?

来自分类Dev

python-如何从文本文件的每一行提取字符串?

来自分类Dev

如何按顺序检索文本文件的每一行 [python 3]

来自分类Dev

如何从文本文件中取出每一行并取平均值?

来自分类Dev

如何将特定行从文本区域表单写入文本文件?的PHP

来自分类Dev

将txt文件中的每一行与每一行中的另一个文本文件进行比较

来自分类Dev

如何从文本文件中删除一行?

Related 相关文章

  1. 1

    如何将列表的每个元素写入文本文件的每一行?

  2. 2

    如何将文本文件的每一行写入新文件并根据其内容命名?

  3. 3

    Python熊猫如何将csv中的每个单元格写入文本文件中的一行

  4. 4

    如何将增量计数附加到文本文件的每一行?

  5. 5

    如何将文本文件的每一行解析为命令的参数?

  6. 6

    如何将文本文件中的每一行另存为新文件

  7. 7

    读取CSV以及如何将CSV文件的名称写入CSV的每一行

  8. 8

    在文本文件的每一行开头写入脚本的文件名

  9. 9

    Python:写入文本文件时每N个字符结尾一行

  10. 10

    如何将数据追加到文本文件的同一行

  11. 11

    如何将文本文件的第一行放在结束位置

  12. 12

    Java FileReader:如何将文本文件中的每一行分配给一个变量

  13. 13

    如何在文本文件中合并每一行及其后续行

  14. 14

    如何循环文本文件的每一行并附加其他文本换行

  15. 15

    如何循环文本文件的每一行并追加其他文本换行

  16. 16

    如何将一个文本文件与大约二十六个其他文本文件进行比较,并在有匹配项时打印出每一行的某些列?

  17. 17

    将文本文件中的每一行放入数组C#中

  18. 18

    将文本文件的每一行作为numpy数组加载而不循环

  19. 19

    将文本文件中的报价附加到每一行

  20. 20

    将SQL查询结果的每一行另存为文本文件

  21. 21

    将&& \添加到文本文件上的每一行(最后一行除外)

  22. 22

    将多个批处理命令的输出写入文本文件的一行

  23. 23

    如何读取文本文件的内容并为每一行运行命令?

  24. 24

    python-如何从文本文件的每一行提取字符串?

  25. 25

    如何按顺序检索文本文件的每一行 [python 3]

  26. 26

    如何从文本文件中取出每一行并取平均值?

  27. 27

    如何将特定行从文本区域表单写入文本文件?的PHP

  28. 28

    将txt文件中的每一行与每一行中的另一个文本文件进行比较

  29. 29

    如何从文本文件中删除一行?

热门标签

归档