Python实现txt文件内容快速合并功能

在断电断网的困扰中,博主发现了一部分章节的txt小说,为方便阅读,决定自己编写Python脚本合并多个txt文件。通过chardet模块识别不同编码并使用codecs.open解决编码问题,避免了UCS-2 Little Endian编码中中文冒号后的内容无法读取的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这段时间三天两头断电断网的,真是背到家了,明后两天寝室楼更是要因为线路改造要从早上7点停到晚上5点半,真是悲剧。

今天汇编的时候在阿甘的博客里面看到了一部小说《疯狂的程序员》,于是网上搜了下准备放到手机里闲时看看,无奈下载后发现是分章节的txt文本,一共有87个文件,考虑到阅读起来不是很方便,于是想找个现成的工具合并txt文本。

结果尝试了几个工具后觉得合并效果都不给力啊,于是打算自己动手。其实cmd的命令"type *.txt >> crazy-programmer.txt"还是很有效果的,然而合并后的txt文件却十分庞大,所以我还是自己写了一个脚本完成了合并。

说明:由于我下载的87个txt文件的字符编码格式都不统一,所以我用chardet模块判断字符编码类型后再用codecs模块的codecs.open功能解决了编码问题。如果直接用file的open打开txt文件的话,在UCS-2 Little Endian的编码情况下,file.read()遇到中文的冒号(即“:”)后会无法读取冒号以后的内容,所以需要用codecs.open(path,'r',encoding)来解决。

如果还有问题可以留言,代码如下:

#!coding: cp936
import codecs, chardet

def fileopen(filename):
    f = open(filename, 'r')
    s = f.read()
    if(chardet.detect(s)['encoding'] == 'UTF-16LE'):
        f.close()
  
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值