我有我這樣的代碼,但問題是它只給出output.txt中的最後一個文件名,而不是所有30個文件名。列出所有文件目錄名稱到文本文件
import os
path="path I wanted"
dirList=os.listdir(path)
for filename in dirList:
print (filename)
f = open("output1.txt", "w")
f.write(filename)
f.close()
我有我這樣的代碼,但問題是它只給出output.txt中的最後一個文件名,而不是所有30個文件名。列出所有文件目錄名稱到文本文件
import os
path="path I wanted"
dirList=os.listdir(path)
for filename in dirList:
print (filename)
f = open("output1.txt", "w")
f.write(filename)
f.close()
'w'標誌爲'open'會在循環的每次迭代中截斷文件。如果文件已經存在,請改用'a'標誌。欲瞭解更多信息,請參閱here。
雖然這個_may_適用於這個例子,你是否建議OP應該在每次迭代時打開文件並創建一個新的文件對象?效率不高,也不漂亮。更不用說在每次迭代時需要將數據附加到文件的「seek」操作。 –
你是覆蓋在每個循環迭代中的文件。一切之前打開它:
import os
path="path I wanted"
dirList=os.listdir(path)
with open("output1.txt", "w") as f:
for filename in dirList:
print (filename)
f.write(filename)
試試這個,有一些額外的改進:
import os
with open('myfile.txt', 'w') as file:
file.writelines([f for f in os.listdir(path)])
你過寫在每個迭代的文件。因此,我們在open
之前將所有行寫入file
。
+1當我有一個兒子時,我希望他喜歡編程! ;) –
@PauloBu謝謝!只是想讓自己在那裏分享我的能力! –
@PauloBu你的女兒也可能喜歡編程,如果你給他們一個機會! –
提示:您正在覆蓋該文件。 _sssh_ – devnull