首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python -基于文件前缀合并多个文件

Python -基于文件前缀合并多个文件
EN

Stack Overflow用户
提问于 2020-04-10 20:05:40
回答 1查看 661关注 0票数 1

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

对所有文件都相同

代码语言:javascript
复制
# 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")

上面的代码生成合并文件,但两个合并文件都包含所有文件的内容

代码语言:javascript
复制
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")

此版本仅将一个文件的内容写入合并文件

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-10 20:31:05

每次读取文件时,您都在写入一个新文件,因此您需要改为追加。您还需要一个不必要的嵌套for循环来读取文件,而您可以在外部循环中读取它们。这应该是可行的:

代码语言:javascript
复制
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")
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61139895

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档