2017-02-02 103 views
0

我在文件filenames.txt中有一個文件名列表。我將逐個打開所有文件,並且想要將某些操作的結果寫入不同的目錄,但具有相同的文件名。到目前爲止,我嘗試了這一點,但這不起作用。任何幫助?將for循環的輸出寫入與輸入文件具有相同文件名的多個文件

with open("/home/morty/filenames.txt","r") as f: 
    names = [name.strip() for name in f] 

for name in names: 
    save=open("/home/morty/dir/%name" %name,"w") 
    save.write(---some operation---) 

我的問題與此類似,但我不希望由count/enumerate命名的文件。我希望名稱與輸入文件名相同: Write output of for loop to multiple files

回答

1

您的格式語句不正確。它應該是"/home/morty/dir/%s" %name

但是,當你想加入一個目錄名文件名,最好是用os.path.join這樣的:

for name in names: 
    with open(os.path.join("/home/morty/dir",name),"w") as save: 
     save.write(---some operation---) 

(和with上下文塊,以確保該文件是完成後關閉)