Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将多个文本文件合并成一个文件?_Python_File_Glob - Fatal编程技术网

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

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

我想把几个文本文件合并成一个输出文件。 我的原始代码是下载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中)

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

当您已经知道文件名时,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+”来保证安全吗?