使用Python上的windows newline在Python中高效读取csv文件

时间:2010-02-22 21:50:25

标签: python csv python-3.x

以下是在Windows下逐行读取csv文件。

f = open(filename, 'r')

for line in f:

虽然在将csv文件复制到Linux服务器时,它会失败。

应该提到的是,性能是一个问题,因为csv文件非常庞大。因此,我在使用像strip这样的东西时会担心字符串复制。

5 个答案:

答案 0 :(得分:7)

Python内置了对Windows,Linux和Mac系列结尾的支持:

f = open(filename, 'rtU')

for line in f:
    ...

如果您真的不想要慢速字符串操作,则应在处理之前删除文件。你可以使用dos2unix(可以在Debian软件包中找到“tofrodos”)或者(更容易)使用FTP文本模式,它应该自动执行。

答案 1 :(得分:6)

如果效果很重要,为什么不使用csv.reader

答案 2 :(得分:4)

嗯....你有csv文件,你使用的是Python,为什么不用Python csv模块读取文件?

答案 3 :(得分:1)

dos2unix实用程序将非常有效地执行此操作。如果文件很大,我会将该命令作为副本的一部分运行。

答案 4 :(得分:0)

实际上,读取任何文件的高效方式最多的是一个大的I / O.没有足够的RAM可以做到这一点,但I / O越少越好。