我们有时候,看到几k的日志文件,一大堆,一个一个打开又很麻烦,少看几个,又担心遗漏,这个时候,如果有一个可以合并所有文本文件的工具就好了。

下面这个代码就可以实现,它不局限于.txt格式,基本上字符型的文本文档,包括.py格式,.c格式都可以,生成的文件与原来的文件在同一个文件夹下,’joined xxxx-xx-xx.(扩展名)’就是最终的名字。

上代码:

import os
import datetime # 新的文件名中以日期结尾,以下获取系统日期
date = str(datetime.datetime.today())[0:10] file_lists = [] def text_file_merger(directory_path):
entry_lists = os.scandir(directory_path)
for entry_list in entry_lists:
if entry_list.is_file():
file_lists.append(entry_list.path) for file in file_lists:
file_type_extension = os.path.splitext(file)[1] # 获取文件的扩展名,基本上.txt, .py之类的文本文档合并没有问题
joined_file_name = 'joined {}{}'.format(date, file_type_extension)
with open(file, 'rb') as file_to_read:
file_contents = file_to_read.read()
with open(directory_path + os.sep + joined_file_name, 'ab+') as file_to_write:
file_to_write.write(file_contents + b'\n' * 3) # 让每个文件的内容之间相隔3行 directory_path = r"D:\日志文件" text_file_merger(directory_path)

输出:

因为以二进制方式读取,所以不管中文还是英文,都无缝支持。

最新文章

  1. Javascript 模块化开发上线解决方案
  2. Linux常用热键(持续更新)
  3. 【POJ】2299 Ultra-QuickSort(逆序对)
  4. 利用Spire for .NET实现办公自动化——Spire.Doc
  5. Cassandra 的压缩策略STCS,LCS 和 DTCS
  6. C#反射实例化类并调用类的方法
  7. Codevs No.3147 矩阵乘法2
  8. sqoop-1.4.6安装配置
  9. 5个数求最值—南阳acm
  10. 【Kafka源码】KafkaConsumer
  11. 怎样在Spark、Flink应用中使用Protobuf 3的包
  12. m2eclipse Error:ArtifactTransferException: Failure to transfer org.apache.felix:org.apache.felix.res
  13. SharePoint2007 管理中心TimerJob”计时器作业定义”页面报错
  14. CentOS 7 常用命令大全
  15. SQLServer · 最佳实践 · 透明数据加密TDE在SQLServer的应用
  16. MONGODB数据基础与命令
  17. map里面的set方法
  18. VsCode 的使用
  19. Java Debugging with Eclipse - Tutorial
  20. css图标库 font-awesome.min.css

热门文章

  1. Django HttpResponse笔记
  2. Python:(使用matplotlib画图)次坐标轴,两个坐标轴
  3. 【开源】使用Angular9和TypeScript开发RPG游戏(补充了Buffer技能)
  4. 关于Anaconda安装以后使用Jupyter Notebook无法直接打开浏览器的解决方法
  5. 不同label样本画图——颜色分配plt.cm.Spectral
  6. TensorFlow官方发布剪枝优化工具:参数减少80%,精度几乎不变
  7. App压力稳定性测试之Monkey
  8. 曹工说Spring Boot源码(28)-- Spring的component-scan机制,让你自己来进行简单实现,怎么办
  9. 面试刷题30:SpringBean的生命周期?
  10. iOS MachO