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

yipeiwu_com5年前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获取统计自己的qq群成员信息的方法

Python获取统计自己的qq群成员信息的方法

首先说明一下需要使用的工具以及技术:python3 + selenium selenium安装方法:pip install selenium 前提:获取自己的qq群成员信息,自己必须是群...

Python shelve模块实现解析

Python shelve模块实现解析

一、持久化 --shelve 持久化工具 (1)作用:类似字典,用kv对保存数据,存取方式类似于字典 (2)例子:通过一下案例创建了一个数据库,第二个程序我们读取了数据库 #使用sh...

Python实现过滤单个Android程序日志脚本分享

在Android软件开发中,增加日志的作用很重要,便于我们了解程序的执行情况和数据。Eclipse开发工具会提供了可视化的工具,但是还是感觉终端效率会高一些,于是自己写了一个python...

python程序封装为win32服务的方法

本文实例为大家分享了python程序封装为win32服务的具体代码,供大家参考,具体内容如下 # encoding=utf-8 import os import sys import...

总结Python编程中三条常用的技巧

在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结。 json 字符串格式化 在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 jso...