【发布时间】:2010-11-29 11:14:57
【问题描述】:
我想使用 Perl 创建一个 CSV 文件并向其中写入一些数据。有什么办法吗?
【问题讨论】:
我想使用 Perl 创建一个 CSV 文件并向其中写入一些数据。有什么办法吗?
【问题讨论】:
你可以使用Class:CSV。
use Class::CSV;
my $csv = Class::CSV->new(
fields => [qw/userid username/]
);
$csv->add_line([2063, 'testuser']);
$csv->add_line({
userid => 2064,
username => 'testuser2'
});
$csv->print();
# 2063,testuser
# 2064,testuser2
编辑:更多库,可以search CPAN。
【讨论】:
我们通常使用Text::CSV_XS(上面提到的Class::CSV是基于它的)
更新: 下面的评论者还建议使用Text::CSV,它将加载Text::CSV_XS,或者,如果这不可用,则使用没有XS 依赖的Text::CSV_PP,并且可能更容易安装。
【讨论】:
有不止一种方法可以做到这一点。
CPAN 上还有很多其他人。
当然,您可以忽略所有这些,只使用循环、连接和打印:
my @table = (
[ 'a', 'b', 'c'],
[ 1, 2, 3 ],
[ 2, 4, 6 ],
);
for my $row ( @table ) {
print join( ',', @$row ), "\n";
}
只需运行您的脚本并将输出重定向到一个文件,砰!你完成了。或者你可能会发疯并open 一个文件句柄,然后直接打印到一个文件。
但是,您将无法处理多行字段、嵌入式逗号或此类数据处理任务中可能出现的许多其他奇怪现象。所以要小心这种方法。
我的建议:
【讨论】: