【发布时间】:2016-07-29 10:15:17
【问题描述】:
我有一个名为 Some.csv 的文件,其中有一个字段(列),其值类似于
1000, 2000, .... 39000.
我只想要 39000 的文件,所以我编写了以下 python 脚本
import os
import csv
with open('Somenew.csv', 'w') as fw:
writr = csv.writer(fw, delimiter=',')
with open('Some.csv','r') as fr:
reader = csv.reader(fr, delimiter = ',')
for row in reader:
if row[2] == '39000': writr.writerow(row)
现在当它在 Windows 上执行时,它 Somenew.csv 看起来像这样
xxxx, xxxx, 39000, xxxx, xxxx
yyyy, yyyy, 39000, yyyy, yyyy
但在 Linux (Ubuntu 14.04LTS) 上执行时,没有添加额外的换行符。
这有什么原因吗?是不是编译器的原因?
【问题讨论】:
-
这是因为 Windows 在文本文件中使用
\r\n而不是\n作为行尾。简单的解决方法是将 CSV 文件作为二进制文件读取和写入,但 Python 3 中还有其他选项。您使用的是什么版本的 Python? -
2.7.something(可能是 10 个)。谢谢,这是有道理的。所以把'r'和'w'改成'rb'和'wb'?
标签: python linux windows python-2.7 csv