目前一个用的比较多的功能:将多个小文件的内容合并在一个统一的文件中,对原始文件重命名标记其已被处理过。
之前使用其他脚本写的,尝试用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')

最新文章

  1. ruby 编译安装,gem国内源ruby.taobao.org
  2. [Python]logging模块使用basicConfig后记录日志重复问题
  3. 洛谷P1371 NOI元丹
  4. 关于OnEraseBkgnd和OnPaint的转载
  5. DirectUI 收集资料
  6. 添加Java文档注释
  7. dispatch_semaphore
  8. JSP 表单request内容
  9. IO中同步、异步与阻塞、非阻塞的区别(转)
  10. 解决Sublime Text 3中文显示乱码(tab中文方块)问题,sublime tab乱码
  11. UIImageView 的contentMode属性应用
  12. Angularjs Material
  13. iOS UIPrintInteractionController在iPad的 iOS10 和 11上的奇怪bug
  14. 别人的Linux私房菜(19)认识与分析日志文件
  15. jedis集群版应用
  16. CSS3里的瀑布流效果
  17. CAP二十年:“规则”变了
  18. 关于azkaban上传job压缩包报错问题的解决方案
  19. windows 函数
  20. js获取元素得几种情况

热门文章

  1. OpenCV中图像的格式Mat 图像深度
  2. ID3-C45-CART
  3. Cocos2dx利用intersectsRect函数检测碰撞
  4. 测试那些事儿—postman入门介绍
  5. 测试那些事儿—selenium自动化实战之登录验证码处理
  6. 421. Maximum XOR of Two Numbers in an Array
  7. git 错误汇总
  8. VS2010添加虚拟机发布的WebService引用
  9. Python shelve 模块
  10. 邮件报警以及服务端能否ping通客户端的小例子(三)