我正在尝试加载以下测试.csv文件:
R1C1 R1C2 R1C3
R2C1 R2C2 R2C3
R3C1 "R3C2 R3C3
R4C1 R4C2 R4C3
使用Python脚本:
import csv
with open("test.csv") as f:
for row in csv.reader(f, delimiter='\t'):
print(row)
我得到的结果如下:
['R1C1', 'R1C2', 'R1C3']
['R2C1', 'R2C2', 'R2C3']
['R3C1', 'R3C2\tR3C3\nR4C1\tR4C2\tR4C3\n']
事实证明,当Python找到第一个字符是引号并且没有右引号的字段时,它将包括以下所有内容作为同一字段的一部分。
我的问题是:要正确读取文件中的所有行,最好的方法是什么?请考虑到我使用的是Python 3.8.5,脚本应该能够读取巨大的文件(2GB或更多),因此还应该考虑内存使用和性能问题。
1条答案
按热度按时间ahy6op9u1#
老实说,如果你要处理这么多数据,最好先进去清理一下。如果可能的话,首先修复产生错误数据的任何过程。
我还没有测试过一个大文件,但是你可以在读取行时替换
"
字符,假设它们永远不会是有效字符:输出: