解析多个CSV文件的最佳选择,具体取决于具有多个条目的名称

时间:2013-09-12 04:05:45

标签: python perl bash csv

我正在为我的研究做模拟,我得到输出多个CSV文件(取决于我设置的参数数量。)文件的名称是param1_param2 _...._ paramx.csv。所以最后我有大量的文件,我必须打开所有文件,获取数据并绘制曲线。

可以自动执行吗?我看到很多已发布的主题主题,实际上我没有找到如何解析多个文件,具体取决于它们的名称和内容。

有人可以指导我这样做吗?我从不写脚本,所以我正在寻找最简单的方法。哪种语言更好? shell,python,Perl ..?

1 个答案:

答案 0 :(得分:1)

我也认为你必须尝试一些东西,然后从你的例子中特别提出。

无论如何,在Perl中你可以使用类似于:

的代码(易于理解)
$folder = "foo";
opendir(DIR,$folder);
while ($file0 = readdir(DIR)) {
    next if ($file0 !~ /^param/ and $file0 !~ /\.csv$/);
    open($file1, "<", "$folder/$file");
    open($file2, ">", "$folder/$file\/out");
    while ($line = <$file1>) {
        ... ;
        print $file2 ... ;
    }
}
closedir(DIR);

简要地说:首先,您要打开包含要处理的文件的文件夹。然后,你拿每个文件(“while($ file0 = readdir(DIR))”),用读取权限打开它(“&lt;”),打开另一个文件具有写入权限(“&gt;”)以将输出保存在另一个文件中并获取原始文件的每一行(“while($ line =)”),处理它是你想要的(我建议你看看 regex ,你也在“next if”结构中使用)并打印结果到输出文件(“print $ file2 ...”)。最后,最后一件事是关闭你工作的原始文件夹。

即使问题不够具体,我希望它有所帮助。