fan*_* yu 2 csv macos excel perl
我在使用下面的Perl代码时遇到了一些麻烦.我可以打开并阅读我手动制作的CSV文件,但是如果我尝试打开我保存为CSV文件的任何Mac Excel电子表格,下面的代码将其全部读作一行.
#!/usr/bin/perl
use strict;
use warnings;
open F, "file.csv";
foreach (<F>)
{
($first, $second, undef, undef) = split (',', $_);
}
print "$first : $second\n";
close(F);
Run Code Online (Sandbox Code Playgroud)
Ala*_*avi 10
始终使用专用模块(例如Text::CSV或Text::CSV_XS)来实现此目的,因为有很多情况下split-ing将无法帮助(例如,当字段包含逗号而非字段分隔符但在引号内时).
传统的Macintosh(System 9和之前的版本)使用CR(0x0D,\ r)作为行分隔符.Mac OS X(基于Unix)使用LF(0x0A,\n)作为默认行分隔符,因此作为Unix工具的perl脚本可能期望LF但是正在获得CR.由于perl文件中没有行分隔符,因此认为只有一行.如果它有Windows行结尾(CR,LF),你可能会在每行的末尾得到一个不可见的CR.
使用0x0A替换0x0D的输入快速循环可以解决您的问题.
| 归档时间: |
|
| 查看次数: |
2283 次 |
| 最近记录: |