Perl";“打开多个csv文件”+&引用;提取其名称的一部分并存储它”;

Perl";“打开多个csv文件”+&引用;提取其名称的一部分并存储它”;,perl,csv,Perl,Csv,我知道这个标题毫无意义 我几天前就开始编写Perl,所以不要评判我 我有多个名称部分相同的CSV文件。几个示例名称: Belgroep\ 00.csv, Belgroep\ 01.csv, Belgroep\ 02.csv 所以我的脚本在所有文件中都有循环,从00开始循环到46结束 然后它必须从名称中获取数字并将其存储在变量中 如果你们能告诉我在用我有限的知识编写这个脚本时要使用哪些模块、方法等,那就太好了。这里有一些代码可以帮助您开始: # Test files created in lin

我知道这个标题毫无意义

我几天前就开始编写Perl,所以不要评判我

我有多个名称部分相同的CSV文件。几个示例名称:

Belgroep\ 00.csv, Belgroep\ 01.csv, Belgroep\ 02.csv
所以我的脚本在所有文件中都有循环,从00开始循环到46结束 然后它必须从名称中获取数字并将其存储在变量中


如果你们能告诉我在用我有限的知识编写这个脚本时要使用哪些模块、方法等,那就太好了。

这里有一些代码可以帮助您开始:

# Test files created in linux via:
# touch Belgroep\ {00..46}.csv 

my $CWD = '.';

# Get a handle for the current working directory:
opendir MYDIR, $CWD;


while( readdir MYDIR ){

  print "Processing file: $CWD/$_\n";

  if ( "$_" =~ m/[0-9]{2}/ ) {  # this file name has a number pair in it.
    my $file = $_;
    my ($num) = $_ =~ /([\d]{2})/;
    print "Number for file \"$file\" is $num\n";
  }
}
将perldoc命令与-f选项结合使用,以提供有关每个函数的详细信息

例如:perldoc-f opendir

这也是一个巨大的资源


对于模块,您应该搜索
Text::CSV
将是一个不错的选择。“因此,我的脚本在所有文件中循环,从00开始,到46结束,然后它必须从名称中获取数字并将其存储在变量中。”请澄清这一点。文件名的范围是否在
00.csv
之间<代码>46.csv?如果是,为什么需要阅读目录?另外,如果文件具有该名称范围,您是否已经有了编号?你打算怎么处理这些名字?你需要
打开
任何文件吗?因此我的文件名为Belgroep\00.csv(\space,因为我在linux中),他们的文件名是46个,我必须读取所有文件,同时从文件名中获取特定行,它必须读取文件名的最后2个字符,从00到46,然后将其放入新的csv文件中的一行中。谢谢!这对我帮助很大!!