2017-08-10 73 views
0

我想添加兩個或更多的文件在一個文件中的所有信息。我的代碼是:IOError:[Errno 2]沒有這樣的文件或目錄:'t'python

def add_file(filenames, output_file): 
    with open(output_file, 'w') as master_file: 
     master_file.write('C/A,UNIT,SCP,DATEn,TIMEn,DESCn,ENTRIESn,EXITSn\n') 
     for filename in filenames: 
      with open(filename, 'r') as infile: 
       master_file.write(infile.read()) 

當我打電話把所有文件 顯示:

IOError: [Errno 2] No such file or directory: 't'

爲什麼?我做錯了什麼?

+1

您正在爲'filenames'傳入一個字符串,因此它會遍歷字符串 – Wondercricket

回答

1

您傳遞了一個字符串作爲filenames,並且該函數通過字符迭代它。代之以傳遞一個列表。將函數從add_file重命名爲add_files可能會更好。

小心out.txt;如果您想要多次調用此函數,則應該在追加模式而不是「w」模式下打開它。

+0

或其他一些迭代。 –

0

您正在爲filenames傳遞一個字符串,所以函數會在字符串中迭代它。通過一個列表來解決這個問題。

0
for filename in filenames: 

上面的代碼行在您的第一個參數中迭代一次,這恰好是一個字符串。

當調用此行

with open(filename, 'r') as infile: 

「名」是在文件名中的項目存在什麼。一旦達到字符串的第一個字母,就會發生錯誤。

相關問題