繁体   English   中英

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

[英]Efficiently reading a csv file with windows newline on linux in Python

以下是在windows下工作,逐行读取csv文件。

f = open(filename, 'r')

for line in f:

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

应该提到的是,性能是一个问题,因为csv文件非常庞大。 因此,我关注使用strip之类的字符串复制。

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

f = open(filename, 'rtU')

for line in f:
    ...

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM