【问题标题】:In Python 3, how can I write two lists of strings into a csv file of two columns? [duplicate]在 Python 3 中,如何将两个字符串列表写入两列的 csv 文件? [复制]
【发布时间】:2018-08-23 22:37:13
【问题描述】:

我目前在 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)

这会生成一个将每个字符视为一个新单元格的文件。我究竟做错了什么?谢谢!

【问题讨论】:

    标签: python python-3.x csv


    【解决方案1】:

    您可以将这些列表zip 放在一起,以便将每一对 (list1, list2) 视为单行:

    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
    

    【讨论】:

    • 谢谢,太好了!
    • 很高兴能帮上忙。 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2016-06-15
    相关资源
    最近更新 更多