循环遍历目录中的文件并将它们合并为python

时间:2015-06-25 13:25:43

标签: python csv io directory

我在名为looper的文件夹中有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'

我不明白为什么。 此外,当我合并这些文件时,我只想获取第一个文件的列标题。所以我想合并第二行的所有剩余文件。请帮忙!

1 个答案:

答案 0 :(得分: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)