我有一个代码可以从服务器更新CSV。它使用以下方式获取数据:
a = urllib.urlopen(url)
data = a.read().strip()
然后我通过
将数据附加到csvf = 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
答案 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内容。