在Linux上用Python高效读取带Windows换行的CSV文件

2 投票
5 回答
2695 浏览
提问于 2025-04-15 19:36

下面的代码可以在Windows系统上逐行读取csv文件。

f = open(filename, 'r')

for line in f:

不过,当把这个csv文件复制到Linux服务器上时,就会出问题。

需要提到的是,性能是个问题,因为这些csv文件非常大。所以我担心在使用像strip这样的操作时,会影响字符串的复制效率。

5 个回答

4

嗯……你有csv文件,而且你在用Python,为什么不直接用Python的csv模块来读取这些文件呢?

6

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

7

Python 自带了对 Windows、Linux 和 Mac 的换行符的支持:

f = open(filename, 'rtU')

for line in f:
    ...

如果你真的不想让字符串操作变得慢,你应该在处理文件之前先去掉多余的空白。你可以使用 dos2unix 这个工具(它可以在 Debian 的 "tofrodos" 包里找到),或者更简单的方法是使用 FTP 的文本模式,这样它会自动帮你处理。

撰写回答