在Python 3中,如何将两个字符串列表写入两列的csv文件中?

时间:2018-08-23 22:37:13

标签: python python-3.x csv

我目前在Python中有两个看起来像这样的列表:

list1 = ['Steve', 'Mark', 'Jeff', ... ]
list2 = ['steve@mac.com', 'mark223@mac.com', 'jeffrey@mac.com', ...]

由此,我试图创建一个如下所示的csv文件:

Steve   steve@mac.com
Mark    mark223@mac.com
Jeff    jeffrey@mac.com
....

我使用的代码是:

import csv

with open('output.csv','w') as f:
    writer = csv.writer(f)
    writer.writerows(list1,list2)

这将导致将每个字符视为新单元的文件。我究竟做错了什么?谢谢!

1 个答案:

答案 0 :(得分:1)

您可以zip一起使用这些列表,以便将每对(列表1,列表2)都视为单行:

import csv

list1 = ['Steve', 'Mark', 'Jeff']
list2 = ['steve@mac.com', 'mark223@mac.com', 'jeffrey@mac.com']

with open('output.csv','w') as f:
    writer = csv.writer(f)
    writer.writerows(zip(list1,list2))

示例输出:

$ cat output.csv 
Steve,steve@mac.com
Mark,mark223@mac.com
Jeff,jeffrey@mac.com

如果您需要将输出用空格或制表符分隔(而不是逗号),则可以将其指定为csv.writer的参数。例如:

import csv

list1 = ['Steve', 'Mark', 'Jeff']
list2 = ['steve@mac.com', 'mark223@mac.com', 'jeffrey@mac.com']

with open('output.csv','w') as f:
    writer = csv.writer(f, delimiter='\t')
    writer.writerows(zip(list1,list2))

产生:

$ cat output.csv 
Steve   steve@mac.com
Mark    mark223@mac.com
Jeff    jeffrey@mac.com