1
46
正确的方法是使用 Text::CSV_XS 对于纯Perl来说,最快的方法是逐行读取文件,然后简单地拆分数据:
如果任何字段包含嵌入逗号,则此操作将失败。一种更健壮(但速度较慢)的方法是使用Text::ParseWords。为此,请更换
|
2
19
这是一个同样尊重引用的版本(例如。
像这样使用:
|
3
9
Text::CSV
如果你可以得到额外的代码
(例如,你自己的个人模块)你可以
此外,如果除了将整个文件读入内存并(我假设)存储在标量中之外没有其他选择,您仍然可以像文件句柄一样读取它,方法是打开标量的句柄:
或逗号上的次优分割:
使用这种方法,一次只从标量中复制一位数据。 |
4
2
你需要基准你的进口 看看是什么导致了经济放缓。例如,如果您正在执行占用85%时间的db插入,则此优化将不起作用。 编辑
逐字节遍历缓冲区,直到找到一个csv delimeter或新行。
就这样。但是把一个大文件读入内存并不是最好的方法,看看我原来的答案,这是正常的方法。 |
5
1
假设您已将CSV文件加载到
|
6
1
在问题所施加的限制范围内回答,您仍然可以通过将输入文件拖入数组而不是标量来剪切第一个分割:
即使无法安装(的纯Perl版本)
|
batman · 如何用特定模式grep特定行及其子网行? 2 年前 |
Jensen Holm · 在非常大的字符串中查找链接时遇到问题 2 年前 |
MBF · PHP导入/解析XML文件内容保存到数据库 2 年前 |
user10717742 · 用java编写的自定义文件解析器需要改进 2 年前 |
Muhsin Muhammed · 向文件中的行添加引号和逗号 2 年前 |
Felkru · 添加字符串会在Javascript中返回空字符串 2 年前 |
Mustard Tiger · 熊猫解析文本列 2 年前 |