【发布时间】:2017-11-27 00:05:02
【问题描述】:
我想将几个文本文件合并为一个输出文件。 我的原始代码是下载 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中)
【问题讨论】:
-
你必须用
a+打开文件,这是追加模式,你一直打开它wb模式,每次都会覆盖你想要的东西 -
你必须用
a+打开文件。 -
您似乎已经有了这些文件。为什么需要
glob? -
在
for循环之前打开输出文件一次,该循环在写入之前打开并读取每个输入文件,您不需要在'a+'附加模式下打开它(常规'w'模式会很好)。 -
那么 glob 是做什么的?