我有一个名为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)上执行时,没有添加额外的换行符。
这有什么理由吗?这可能是因为编译器?
答案 0 :(得分:1)
如果您使用的是Python 2.x,则必须对wb
文件使用csv
模式:
https://docs.python.org/2/library/csv.html#csv.writer
如果csvfile是一个文件对象,那么它必须在平台上以“b”标志打开,这会产生影响。
答案 1 :(得分:0)
尝试以二进制模式打开文件。 This回答可能有所帮助。