遍历目录中的文件并合并它们 python
Loop over files in a directory and merge them python
我在一个名为 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'
我不明白为什么。
此外,当我合并这些文件时,我只想获取第一个文件的 headers 列。所以我想合并所有剩余的文件,只形成第二行。请帮忙!
os.listdir()
returns 只有文件名,要获取完整路径,请使用 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)
我在一个名为 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'
我不明白为什么。 此外,当我合并这些文件时,我只想获取第一个文件的 headers 列。所以我想合并所有剩余的文件,只形成第二行。请帮忙!
os.listdir()
returns 只有文件名,要获取完整路径,请使用 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)