python - 在 Python 3 中,如何将两个字符串列表写入两列的 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)
这会生成一个将每个字符视为一个新单元格的文件。我究竟做错了什么?谢谢!
解决方案
您可以将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
推荐阅读
- windows - Visual Studio 正在寻找 LLVM.lib,但 LLVM 官方二进制文件中甚至不存在具有该名称的文件。我应该在哪里寻找它?
- sql - 一列中多行的总和
- mysql - Express JS 查询错误处理不起作用
- sql - SQL Server 查询同一列上的多个条件
- sql-server - 通过 SQL Server XML 函数处理 XML prolog
- python - 重塑包含 2D 数据的 1D numpy 数组
- node.js - Node Js 运行真实浏览器并连接到它
- python - 图表标题一一打印
- python - 根据某些值合并两个 Python pandas 数据框行
- reactjs - 有没有办法指定我想在哪里插入内容(在另一个组件的中间)?