Python实现多文本文件合并与重命名处理示例

Jasper
Jasper
发布时间:2026-10-13| 5人浏览过
原创

本文介绍使用Python脚本批量合并多个代码或文本文件到一个新文件中,并对原始文件进行重命名标记已处理。示例涵盖文件创建、读写、重命名及空行过滤,解决逐一打印代码文件效率低且浪费纸张的问题。

前言

在接手新项目时,阅读代码是常见任务。有时需要将代码文件打印出来以便查阅,但项目中的代码文件数量往往多达两位数甚至更多。逐一打开并打印这些文件不仅耗费大量精力,而且单个文件在纸上可能仅占一两行,造成纸张的极大浪费。如果能够将所有文件内容合并到一个文本文件中,上述问题便能得到解决。

目前一种较为实用的功能是:将多个小文件的内容合并到一个统一的目标文件中,并对原始文件进行重命名,以标记其已被处理。此前曾使用其他脚本语言实现此功能,现尝试使用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')

总结

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助。如果有疑问,大家可以留言交流,谢谢大家对本站的支持。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。