Python 2.7
我有多个文件:
文件A_01.txt文件内容: aaaa
文件A_02.txt文件内容: bbbb
文件B_01.txt文件内容: aaaB
文件B_02.txt文件内容: bbbB
文件D_01.txt文件内容: aaaD
文件D_02.txt文件内容: bbbD
我需要创建基于文件前缀的“合并”文件,
对于以A_0开头的文件,创建合并文件merged_A.txt,并将所有文件的内容以A_0开头。
以B_开头的文件的merged_B.txt
对所有文件都相同
# get all files in folder
files = os.listdir("C:\\MTA\\mta")
for filename in files:
#get prefix
prefix = filename[0:3]
# open destination file to merge individual files into
with open(os.path.join("C:\\MTA\mta", "merged" + "_" + prefix + ".txt"), 'w') as outfile:
# go through all files and merge it into outfile
for file in files:
with open(os.path.join("C:\\MTA\mta", filename)) as infile:
outfile.write(infile.read())
outfile.write("--------------\n")上面的代码生成合并文件,但两个合并文件都包含所有文件的内容
files = os.listdir("C:\\MTA\\mta")
for filename in files:
#get prefix
prefix = filename[0:3]
# open destination file to merge individual files into
with open(os.path.join("C:\\MTA\mta", prefix + "file.siem"), 'w') as outfile:
# go through all files and merge it into outfile
#for filename in files:
with open(os.path.join("C:\\MTA\mta", filename)) as infile:
outfile.write(infile.read())
outfile.write("--------------\n")此版本仅将一个文件的内容写入合并文件
发布于 2020-04-10 20:31:05
每次读取文件时,您都在写入一个新文件,因此您需要改为追加。您还需要一个不必要的嵌套for循环来读取文件,而您可以在外部循环中读取它们。这应该是可行的:
import os
# get all files in folder
files = os.listdir("C:\\MTA\\mta")
for filename in files:
#get prefix
prefix = filename[0:2]
# open destination file to merge individual files into
with open(os.path.join("C:\\MTA\\mta", "merged" + "_" + prefix + ".txt"), 'a') as outfile:
# go through all files and merge it into outfile
with open(os.path.join("C:\\MTA\\mta", filename)) as infile:
outfile.write(infile.read())
outfile.write("--------------\n")https://stackoverflow.com/questions/61139895
复制相似问题