反方向的无奈 2021-04-15 15:17 采纳率: 83.3%
浏览 149
已结题

python将多个txt合并成一个txt序列号问题

初学python求帮忙:

文件夹内有10个txt文档,每个文档里面有一篇文章,文章内有标题和内容;

需求:合并10个txt文档,每个文档的标题前面加入序号,并输出文档

例如:第1篇 [标题]

          [内容]

          第2篇 [标题]

          [内容]

           .............

          第10篇 [标题]

          [内容]

目前只实现合并但是并没有实现标题前面加入的序号,代码如下:

import os

def getAllTxt():
    # 文件夹目录
    path = "C:\\Users\\chzsu\\Desktop\\新建文件夹"
    # 得到文件夹下的所有文件名称
    files= os.listdir(path)
    txts = []
    # 遍历文件夹
    for file in files:
        # 构造绝对路径,"\\",其中一个'\'为转义符
        position = path+'\\'+ file
        # 输出路径
        print(position)
        # 打开文件
        if file.endswith(".txt"):
            with open(position, "r", encoding='utf-8') as f:
                # 读取文件
                data = f.read() + '\n\n'
                txts.append(data)
    # 转化为非数组类型
    txts = ''.join(txts)
    with open('txt/集合.txt', 'a', encoding='utf-8') as file:
        print(txts)
        file.write(txts)


getAllTxt()
  • 写回答

4条回答 默认 最新

  • 关注
    import os
    def getAllTxt():
        # 文件夹目录
        path = "C:\\Users\\chzsu\\Desktop\\新建文件夹"
        # 得到文件夹下的所有文件名称
        files= os.listdir(path)
        txts = []
        # 遍历文件夹
        num = 1 
        for file in files:
            # 构造绝对路径,"\\",其中一个'\'为转义符
            position = path+'\\'+ file
            # 输出路径
            print(position)
            # 打开文件
            if file.endswith(".txt"):
                with open(position, "r", encoding='utf-8') as f:
                    # 读取文件
                    data = f"第{num}篇 " + f.read() + '\n\n'
                    num += 1
                    txts.append(data)
        # 转化为非数组类型
        txts = ''.join(txts)
        with open('txt/集合.txt', 'a', encoding='utf-8') as file:
            print(txts)
            file.write(txts)
     
    getAllTxt()
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 2月17日