在python中将元组行保存到csv而没有空行?

时间:2014-06-06 18:04:54

标签: python csv tuples

我在这里已经阅读了很多关于如何做到这一点的问题和答案。但是,举个例子,我有一个像这样的元组:

[['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)

1 个答案:

答案 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。