Python文件操作之合并文本文件内容示例代码


Posted in Python onSeptember 19, 2017

前言

相信大家初入某个项目,一般都要看代码。有时候,想把代码文件打印下来看,不过一般代码文件数量都在两位数或更多,逐一打开、打印,确实太耗费精力了,此外,也会出现某个代码文件打印到纸上只占了一两行的情况,很浪费纸。如果可以合并到一个文本文件里面上面这些问题就解决。

目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过。
之前使用其他脚本写的,尝试用python写了一下,顺便熟悉一下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 相关文章推荐
Python中暂存上传图片的方法
Feb 18 Python
详解Python多线程
Nov 14 Python
Python利用splinter实现浏览器自动化操作方法
May 11 Python
Python实现读取机器硬件信息的方法示例
Jun 09 Python
解决django后台样式丢失,css资源加载失败的问题
Jun 11 Python
python打造爬虫代理池过程解析
Aug 15 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
python3操作注册表的方法(Url protocol)
Feb 05 Python
django 模型中的计算字段实例
May 19 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
Python TestSuite生成测试报告过程解析
Jul 23 Python
Python 在 VSCode 中使用 IPython Kernel 的方法详解
Sep 05 Python
使用Python & Flask 实现RESTful Web API的实例
Sep 19 #Python
python基本语法练习实例
Sep 19 #Python
基于python3 类的属性、方法、封装、继承实例讲解
Sep 19 #Python
浅谈python中列表、字符串、字典的常用操作
Sep 19 #Python
Python 文件操作的详解及实例
Sep 18 #Python
python Socket之客户端和服务端握手详解
Sep 18 #Python
Python基于time模块求程序运行时间的方法
Sep 18 #Python
You might like
PHP区块查询实现方法分析
2018/05/12 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
Yii框架连表查询操作示例
2019/09/06 PHP
Javascript学习笔记6 prototype的提出
2010/01/11 Javascript
js异步加载的三种解决方案
2013/03/04 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
简单实现的JQuery文本框水印插件
2016/06/14 Javascript
AngularJS $injector 依赖注入详解
2016/09/14 Javascript
JS对大量数据进行多重过滤的方法
2016/11/04 Javascript
Bootstrap下拉菜单更改为悬停(hover)触发的方法
2017/05/24 Javascript
Angular 4环境准备与Angular cli创建项目详解
2017/05/27 Javascript
ReactNative Image组件使用详解
2017/08/07 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
微信小程序保存多张图片的实现方法
2019/03/05 Javascript
ES6顶层对象、global对象实例分析
2019/06/14 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
2019/06/27 Javascript
javascript实现页面的实时时钟显示示例
2020/08/06 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
[01:45:05]VGJ.T vs Newbee Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[54:24]Optic vs TNC 2018国际邀请赛小组赛BO2 第二场
2018/08/18 DOTA
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python数据结构与算法之二叉树结构定义与遍历方法详解
2017/12/12 Python
浅谈Python2之汉字编码为unicode的问题(即类似\xc3\xa4)
2019/08/12 Python
Python用dilb提取照片上人脸的示例
2020/10/26 Python
使用CSS3的背景渐变Text Gradient 创建文字颜色渐变
2014/08/19 HTML / CSS
怎样自定义一个异常类
2016/09/27 面试题
保护环境建议书100字
2014/05/13 职场文书
商业街策划方案
2014/05/31 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
出国签证在职证明范本
2014/11/24 职场文书
2016年大学校运会广播稿件
2015/12/21 职场文书
浅谈Mysql多表连接查询的执行细节
2021/04/24 MySQL