使用python将多个文本文件合并为一个文本文件

20 python

假设我们有许多文本文件,如下所示:

文件1:

abc
def
ghi
Run Code Online (Sandbox Code Playgroud)

文件2:

ABC
DEF
GHI
Run Code Online (Sandbox Code Playgroud)

文件3:

adfafa
Run Code Online (Sandbox Code Playgroud)

文件4:

ewrtwe
rewrt
wer
wrwe
Run Code Online (Sandbox Code Playgroud)

我们如何制作一个如下文本文件:

结果:

abc
def
ghi
ABC
DEF
GHI
adfafa
ewrtwe
rewrt
wer
wrwe
Run Code Online (Sandbox Code Playgroud)

相关代码可能是:

import csv
import glob
files = glob.glob('*.txt')
for file in files:
with open('result.txt', 'w') as result:
result.write(str(file)+'\n')
Run Code Online (Sandbox Code Playgroud)

在这之后?有帮助吗?

api*_*guy 53

您可以将每个文件的内容直接读入输出文件句柄的write方法,如下所示:

import glob

read_files = glob.glob("*.txt")

with open("result.txt", "wb") as outfile:
    for f in read_files:
        with open(f, "rb") as infile:
            outfile.write(infile.read())
Run Code Online (Sandbox Code Playgroud)


llb*_*llb 9

fileinput模块专为此用例而设计.

import fileinput
import glob

file_list = glob.glob("*.txt")

with open('result.txt', 'w') as file:
    input_lines = fileinput.input(file_list)
    file.writelines(input_lines)
Run Code Online (Sandbox Code Playgroud)


小智 6

您可以尝试这样的事情:

import glob
files = glob.glob( '*.txt' )

with open( 'result.txt', 'w' ) as result:
    for file_ in files:
        for line in open( file_, 'r' ):
            result.write( line )
Run Code Online (Sandbox Code Playgroud)

应该直接阅读。