我在这里已经阅读了很多关于如何做到这一点的问题和答案。但是,举个例子,我有一个像这样的元组:
[['citigroup.com', 'mx-a.mail.citi.com', 'Y', '248000', 'N'], ['', 'mx-b.mail.citi.com', 'Y', '', 'N']]
我想将它导出到csv,我可以这样做:
with open('file.csv','w') as out:
csv_out=csv.writer(out)
csv_out.writerow(['Domain:','MX:','Verified:','ID:','>20'])
for row in data:
csv_out.writerow(row)
但是,我是否必须做一些与众不同的事情,因为我的内容几乎就像一个元组内部的元组。当我尝试时,我将每个内部元组作为单个元素。 (我最终得到了两个元素)
如何在csv中将每个元组写成一行?
更新
以下代码有效但我在每个代码之间得到空行是因为元组内部的元组
def saveFile():
with open('mailserverdata.csv','w') as out:
csv_out=csv.writer(out)
csv_out.writerow(['Domain:','Mail Server:','TLS:','# of Employees:','Verified:'])
for row in root.ptglobal.to_csv():
csv_out.writerow(row)
答案 0 :(得分:3)
要更正CSV中额外行的更新问题,您只需在open语句中使用wb
标志即可。
所以看起来应该是这样的。
with open('mailserverdata.csv','wb') as out:
这样做是因为writerow
添加了\r\n
但是,在Windows系统上,Python会将每个\n
转换为\r\n
,从而为您提供\r\r\n
因此额外的线条。以二进制模式打开文件可以防止这种情况发生。
同样@StevenRumbalski在评论中指出,这仅适用于2.7。