Python文件操作---合并文本文件内容

本文介绍了一个实用的Python脚本,该脚本能够将指定目录下的多个小文件内容合并到一个新文件中,并对原始文件进行重命名以标记它们已被处理。文中详细展示了如何使用Python操作文件,包括文件的读取、写入、创建和重命名等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过。
之前使用其他脚本写的,尝试用python写了一下,顺便熟悉一下python的文件处理命令。

 

原始文件

经过处理之后

最后还有一个蛋疼的因为缩进产生的第一个回车符

其中包含了文件的创建和移除,文件内容的读写,文件的重命名的语法命令等等

# -*- coding: utf-8 -*-
import os
import time
import datetime

def merge_file(file_path,file_name):
    #file_path must exits
    if(os.path.exists(file_path) is False):
        print('file_path is not exists')
        return

    if(os.path.exists(os.path.join(file_path, file_name))):
        os.remove(os.path.join(file_path, file_name))

    #'%Y_%m_%d%H%M%S',创建一个以日期命名的文本文件
    targetfilename  = str(time.strftime('%Y%m%d%H%M%S'))+'.txt'
    fobj = open(os.path.join(file_path, targetfilename), 'w')
    fobj.close()

    # a 是以追加的方式打开文件写入
    with open(os.path.join(file_path, targetfilename), 'a', encoding='GBK') as f_wirte:
        files = os.listdir(file_path)
        for file in files:
            print(os.path.join(file_path, file))
            with open(file_path+'\\'+file, 'r', encoding='GBK') as f:
                for line in f.readlines():
                    if(line.strip().__len__()) > 0:# 排除空行
                        f_wirte.write(line)
                f_wirte.write('\n')# 每读完一个文件之后,加一个回车,否则第一个文件的最后一行跟第二个文件的第一行没有回车

            # 文件合并之后,重命名原始的文件,
            # os.path.splitext(file)[0] 提取文件名,不包括后缀名
            # os.path.splitext(file)[1] 提取文件后缀名
            if (file != targetfilename):
                os.rename(os.path.join(file_path, file),os.path.join(file_path, os.path.splitext(file)[0] + '在_' +str(time.strftime('%Y%m%d%H%M%S')) +'_已处理' + '.txt'))


merge_file('D:\TestPythonMergeFile','auoto_create_a_category_file')

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值