繁体   English   中英

优化从Python列表中写入多个CSV文件

[英]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变量放入行列表中,并按照enumerateformat生成工作表名称,则更为简单;如果无法轻松生成名称,则在两个列表中都使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM