【发布时间】:2014-10-30 18:31:09
【问题描述】:
我的目录
1.csv
2.csv
3.csv
我正在尝试捕获目录中的每个文件名,并将其与一些附加文本和列一起打印到附加列中的相应文件中。
测试数据
hello,josh,12345,2014-10-30
代码
my $directory = 'C:\directory';
opendir( DIR, $directory );
my @files = readdir(DIR);
closedir(DIR);
foreach (@files) {
print $_, "\n";
}
while (<>) {
#Do whatever here
print;
}
期望的结果
-
1.csv
ID_1234,1.csv,Copmany,hello,josh,12345,2014-10-30 -
2.csv
ID_1234,2.csv,Copmany,hello,josh,12345,2014-10-30
目前的结果
.
..
1.csv
2.csv
3.csv
hello,josh,12345,2014-10-30
我还想在目录中的所有文件上执行这个脚本。
【问题讨论】:
-
ID_1234是从哪里来的? -
ID_1234 是一个附加的文本字符串,我想用它连接我的文件名
-
在你
opendir之后,你应该读两遍并忽略返回值。您将始终在第一时间收到.和..。所以阅读两次以跳过它们,然后进入你的while循环来处理实际的文件。或者,正如有人无疑会指出的那样,使用文件 glob `glob('*.csv') 来模式匹配要处理的文件 anmes。
标签: windows perl while-loop opendir