[英]Optimize writing multiple CSV files from lists in Python
我想使用csv模块为每个列表创建一个CSV文件。 我的代码可以工作,但是一次又一次地写相同的行感觉有点愚蠢。 我想知道是否有更好,有效的方法来编写此部分。
我的电子表格共有3张纸。 row1在列表中具有sheet1数据,row2在列表中具有sheet2数据,依此类推。
with open("sheet1.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(rows1)
with open("sheet2.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(rows2)
with open("sheet3.csv", "wb") as f:
writer = csv.writer(f)
writer.writerows(rows3)
任何帮助,将不胜感激。 谢谢!
例如,在元组列表上进行迭代。
for f,rows in [("sheet1.csv",rows1),("sheet2.csv",rows2),("sheet3.csv",rows3)]:
with open(f, "wb") as f:
writer = csv.writer(f)
writer.writerows(rows)
请注意,如果将rowsX
变量放入行列表中,并按照enumerate
和format
生成工作表名称,则更为简单;如果无法轻松生成名称,则在两个列表中都使用zip
即可。
row_list = [rows1,rows2,rows3]
name_list = ["apple.csv","banana.csv","orange.csv"]
for name,rows in zip(name_list,row_list):
with open("sheet{}.csv".format(i), "wb") as f:
writer = csv.writer(f)
writer.writerows(rows)
还要注意: with open(f, "wb") as f:
仅适用于python 2 csv writer。
对于python 3,请执行以下操作: with open(f, "w", newline="") as f:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.