2015-06-25 103 views
0

我有一個文件夾中的2個文件尺蠖稱爲:遍歷目錄中的文件,並把它們合併蟒蛇

testFile.csv 
file2.csv 

我希望我的Python代碼遍歷文件夾中的每個文件,並將它們全部合併成一個單一的輸出文件。到目前爲止,我的代碼如下:

def combine_csv_files(input_folder_path, output_path): 
    fout = open(output_path, "a") 
    for file in sorted(os.listdir(input_folder_path)): 
     for line in open(file): 
      fout.write(line) 

有了這個,我正在錯誤:

IOError: [Errno 2] No such file or directory: 'file2.csv' 

我不明白爲什麼。 另外,當我合併這些文件時,我只想獲取第一個文件的列標題。所以我想把所有剩下的文件合併成第二行。請幫忙!

+0

你如何稱呼你的功能? – syntonym

+0

combine_csv_files('E:\\ ProjectOpioid \\ Input \\ Looper','E:\\ ProjectOpioid \\ Output \\ output.csv') –

回答

2

os.listdir()只返回文件名,以獲得完整的路徑,使用os.path.join()

full_path = os.path.join(input_folder_path, file) 
for line in open(full_path): 
    fout.write(line) 

至於有關跳過第一行的後續問題,最簡單的方法是使用itertools.islice

from itertools import islice  
for line in islice(open(full_path), 1, None): 
    fout.write(line) 
+0

感謝您的回覆。我現在得到這個錯誤:IOError:[Errno 22] invalid mode('r')or filename:'E:\\ ProjectOpioid \\ Input \\ Looper \\:' –

+0

@UtsavChatterjee這很有趣,'os .listdir(input_folder_path)'return? – bereal

+0

當我使用os.listdir(input_folder_path),'在排序的文件(os.listdir(input_folder_path)): 打印文件'我得到正確的輸出'file2.csv testFile.csv' –

相關問題