簡體   English   中英

如何從列表中創建多個文件及其內容?

[英]How to create multiple files and its contents from a list?

我是 Python 的新手。 我想做一些txt。 文件及其內容,但我看到它僅適用於文件名中的第一個列表(listA)。 它的物品都是制作的。 但是第二個列表(listB)不起作用,它只顯示最后一項(“3”)。 請幫我。

listA = ["one", "two", "three"]
listB = ["1", "2", "3"]

for item in listA:
  for item2 in listB:
    with open("random{}.txt".format(item), "w") as f:
        f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
        f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
        f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

在 with 語句中移動第二個 for 循環。

您當前的代碼正在為 listB 上的每個項目覆蓋您的文件,只留下最后修改的版本(即 item2 =“3”)。

for item in listA:
    with open("random{}.txt".format(item), "w") as f:
        for item2 in listB:
            f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
            f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
            f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

您還可以保留當前代碼並以append模式( 'a' )打開文件,但是關閉文件只是為了重新打開它效率低下。

問題在於您使用的標志。 現在您正在使用“w”標志寫入文件。 如果文件已經存在,這將覆蓋該文件。 如果您使用“a”(附加標志),它可以解決您的問題。 它附加到現有文件,如果文件不存在,它會創建它。

with open("random{}.txt".format(item), "a") as f

此外,您可以通過在 with 語句中移動內部循環來提高代碼效率。 這樣,每個外循環只打開一次文件。

listA = ["one", "two", "three"]
listB = ["1", "2", "3"]

for item in listA:
    with open("random{}.txt".format(item), "w") as f:
        for item2 in listB:
            f.write("Lorem ipsum dolor sit amet, consectetur adipiscing elit.")
            f.write("\nLorem ipsum dolor sit amet, consectetur {} adipiscing elit.".format(item2))
            f.write("\nLorem ipsum dolor sit amet, consectetur adipiscing elit.")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM