Python 如何将多个文本文件合并成一个文件?
我想把几个文本文件合并成一个输出文件。 我的原始代码是下载100个文本文件,然后每次从几个单词中筛选文本并将其写入输出文件 下面是我的代码的一部分,它假设将新文本与输出文本相结合。每次结果都会覆盖输出文件,删除以前的内容并添加新文本Python 如何将多个文本文件合并成一个文件?,python,file,glob,Python,File,Glob,我想把几个文本文件合并成一个输出文件。 我的原始代码是下载100个文本文件,然后每次从几个单词中筛选文本并将其写入输出文件 下面是我的代码的一部分,它假设将新文本与输出文本相结合。每次结果都会覆盖输出文件,删除以前的内容并添加新文本 import fileinput import glob urls = ['f1.txt', 'f2.txt','f3.txt'] N =0; print "read files" for url in urls: read_files = glob.g
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中)问题是,在每次循环迭代中,您都会重新打开输出文件,这将导致它被覆盖,除非您以追加模式显式打开它 当您已经知道文件名时,glob逻辑也是不必要的 请尝试以下方法:
with open("result.txt", "wb") as outfile:
for url in urls:
with open(url, "rb") as infile:
outfile.write(infile.read())
你必须用
a+
这是附加模式打开文件,你一直用wb
模式打开它,这将在每次你用a+
打开文件时覆盖你想要的内容。看起来你已经拥有了这些文件。为什么需要glob
?在for
循环之前打开输出文件一次,该循环打开并读取每个输入文件,然后再写入,您不需要在'a+'
附加模式下打开它(常规'w'
模式可以)。那么glob做什么呢?组合txt文件的过程应该在循环中完成,这就是我以前不能打开它的原因。下载和过滤txt文件时使用相同的循环。那么在这种情况下,我应该使用“a+”来保证安全吗?