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

问题描述 投票:0回答:1

我想将几个文本文件合并为一个输出文件。我的原始代码是下载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个文本文件连接/组合成一个.txt文件。 (每次我读取一个文件并将其添加到result.txt)

python file glob
1个回答
1
投票

问题是你在每次循环迭代时重新打开输出文件会导致它被覆盖 - 除非你在追加模式下明确地打开它。

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

试试这个:

with open("result.txt", "wb") as outfile:
    for url in urls:
        with open(url, "rb") as infile:
            outfile.write(infile.read())
© www.soinside.com 2019 - 2024. All rights reserved.