写入csv后,python中出现意外的换行符

时间:2015-04-23 11:50:08

标签: python csv

我有一个代码可以从服务器更新CSV。它使用以下方式获取数据:

a = urllib.urlopen(url)
data = a.read().strip()

然后我通过

将数据附加到csv
f = open(filename+".csv", "ab")
f.write(ndata)
f.close()

问题是随机地,csv中的一行被写成这样(或者在csv的某处获得换行符):

2,,,,,
015-04-21 13:00:00,18,998,50,31,2293

而不是通常的形式:

2015-04-21 13:00:00,6,1007,29,25,2394
2015-04-21 13:00:00,7,1004,47,26,2522

我尝试在程序运行后在shell中打印我的数据,它会显示损坏的csv条目实际上看起来是正常的。

希望你们能帮助我。感谢。

在win8.1上运行python 2.7.9

1 个答案:

答案 0 :(得分:0)

对“ndata”变量执行了哪些操作?

您应该使用csv模块管理CSV文件:https://docs.python.org/2/library/csv.html

评论后编辑:

如果您不想使用我链接到您的“csv”模块,而不是

a = urllib.urlopen(url)
data = a.read().strip()
ndata = data.split('\n')
f.write('\n'.join(ndata[1:]))

你应该这样做:

a = urllib.urlopen(url)
f.writelines(a.readlines()[1:])

如果您确定传入的数据是正确的,我没有任何理由解释您随机不需要的“\ n”。你管理的线路很长吗? 我建议您使用csv模块来读取您的输入:如果输入正确,您将确保拥有有效的CSV内容。