簡體   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