Python文件操作之合并文本文件内容示例代码
发布时间:2020-12-17 08:04:08 所属栏目: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,'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') 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对编程小技巧的支持。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |