qq_41169717
2021-09-28 02:26
采纳率: 60%
浏览 32
已结题

python 合并子文件夹中所有文本文件

python 合并子文件夹中所有文本文件:
每个子文件夹中都有不同txt文本。
想将所有文本合并,并在合并后的文本中标注相应文本类型和原TXT的文本标号(生成两个版本的文本)
具体描述如下:

原文件:

文件夹: 数据

   子文件夹:类型一:全日制

        TXT文件:Job (1)

        TXT文件:Job (2)

        TXT文件:Job (3)

   子文件夹:类型二:半日制

        TXT文件:Job (1)

        TXT文件:Job (2)

        TXT文件:Job (3)

        TXT文件:Job (4)

   子文件夹:类型三:自由

        TXT文件:Job (1)

        TXT文件:Job (2)

        TXT文件:Job (3)

        TXT文件:Job (4)

生成文本:版本一

整合后的文本为:
Job (1) 文本内容......
Job (2) 文本内容......
Job (3) 文本内容......
Job (1) 文本内容......
Job (2) 文本内容......
Job (3) 文本内容......
Job (4) 文本内容......
Job (1) 文本内容......
Job (2) 文本内容......
Job (3) 文本内容......
Job (4) 文本内容......

生成文本:版本二

类型一:全日制

编码: Job (1)
Job (1) 文本内容......
编码: Job (2)
Job (2) 文本内容......
编码: Job (3)
Job (3) 文本内容......


类型一:全日制

编码: Job (1)
Job (1) 文本内容......
编码: Job (2)
Job (2) 文本内容......
编码: Job (3)
Job (3) 文本内容......
编码: Job (4)
Job (4) 文本内容......
 

类型二:半日制

编码: Job (1)
Job (1) 文本内容......
编码: Job (2)
Job (2) 文本内容......
编码: Job (3)
Job (3) 文本内容......
编码: Job (4)
Job (4) 文本内容....

类型二:自由

编码: Job (1)
Job (1) 文本内容......
编码: Job (2)
Job (2) 文本内容......
编码: Job (3)
Job (3) 文本内容......
编码: Job (4)
Job (4) 文本内容....

谢谢各位学霸!

  • 好问题 提建议
  • 收藏

1条回答 默认 最新

  • 已采纳
    # -*- coding:utf-8 -*-
    
    import os
    
    path = r"E:/xxx/数据" #目录路径
    dirs=os.listdir(path)
    with open(r'版本一.txt', 'w', encoding='utf-8') as fileObj1, open(r'版本二.txt', 'w', encoding='utf-8') as fileObj2:
        for dn in dirs:
            adn=os.path.join(path,dn)
            if os.path.isdir(adn):
                print(dn)
                fileObj2.write(f"{dn}\n\n")
                fns=os.listdir(adn)
                for fn in fns:
                    if fn.endswith(".txt"):
                        print(fn)
                        fileObj2.write("编码:"+fn.replace(".txt","")+"\n")
                        afn=os.path.join(adn,fn)
                        with open(afn, 'r', encoding='utf-8') as fileObj:
                            txt = fileObj.read()
                            print(txt)
                            fileObj1.write(txt+"\n")
                            fileObj2.write(txt+"\n")
                fileObj2.write("\n")
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题