如何将多个文本文件合并为一个文件?

How to combine several text files into one file?

我想将几个文本文件合并成一个输出文件。 我的原始代码是下载 100 个文本文件,然后每次我从几个单词中过滤文本并将其写入输出文件。

这是我的代码的一部分,假设将新文本与输出文本结合起来。结果每次都覆盖输出文件,删除以前的内容并添加新的文本。

import fileinput
import glob    
urls = ['f1.txt', 'f2.txt','f3.txt']

N =0;
print "read files"
for url in urls:
 read_files = glob.glob(urls[N])
 with open("result.txt", "wb") as outfile:
    for f in read_files:
        with open(f, "rb") as infile:
            outfile.write(infile.read())
 N+=1

我也试过了

import fileinput
import glob
urls = ['f1.txt', 'f2.txt','f3.txt']

N =0;
print "read files"
for url in urls:
 file_list = glob.glob(urls[N])
 with open('result-1.txt', 'w') as file:
    input_lines = fileinput.input(file_list)
    file.writelines(input_lines)
 N+=1

有什么建议吗? 我需要将大约 100 个文本文件按顺序 concatenate/combine 合并到一个 .txt 文件中。 (我每次读取一个文件并将其添加到result.txt)

问题是您在每次循环迭代中重新打开输出文件,这将导致它被覆盖——除非您明确地以追加模式打开它。

当您已经知道文件名时,也不需要 glob 逻辑。

试试这个:

with open("result.txt", "wb") as outfile:
    for url in urls:
        with open(url, "rb") as infile:
            outfile.write(infile.read())