如何按指定文本或行将TXT文本文件拆分为多个独立小文件
完整Python实现逻辑
你原有代码存在几个影响运行的问题:变量名笔误(temp = group.split('\n')中group未定义)、未过滤拆分产生的空内容、未兼容不同系统的换行格式、未指定文件编码容易出现乱码,以下是可直接运行的完整代码:
# 读取原文件,若你的TXT是国内常见的GBK编码,可将encoding参数改为'gbk' with open('input.txt', 'r', encoding='utf-8') as f: content = f.read() # 统一换行符格式,兼容Windows(\r\n)、Unix(\n)换行规则 content = content.replace('\r\n', '\n') # 按章节结束标记拆分内容 chapter_blocks = content.split('-THE END-') chapter_num = 1 for block in chapter_blocks: # 去除章节块首尾多余换行,跳过拆分产生的空白块(比如文件末尾标记拆分出的空内容) chapter_content = block.strip('\n') if not chapter_content.strip(): continue # 生成三位补零的标准文件名 output_name = f'Chapter{chapter_num:03d}.txt' # 写入独立章节文件 with open(output_name, 'w', encoding='utf-8') as f: f.write(chapter_content) chapter_num += 1
注意:运行前把input.txt放到和脚本同个文件夹下,运行完成后该文件夹内就会生成所有按规则命名的章节文件,不会遗漏内容也不会生成空文件。
无需写代码的简易工具推荐
如果不想运行脚本,以下工具都可以快速实现拆分需求:
- Calibre:免费开源的电子书管理工具,导入TXT后使用内置的按标记拆分章节功能,指定拆分标识为
-THE END-,设置好命名规则即可批量导出单章,还支持直接把拆分后的章节转成EPUB、MOBI等常见电子书格式。 - 绿色版TXT分割工具:这类单文件小工具体积普遍不到1MB,无需安装,打开后选择原文件,填入自定义拆分标识
-THE END-,设置文件名前缀为Chapter、序号补3位零,点击拆分即可完成,操作门槛最低。 - 本地安装了Notepad++的话也可以通过录制宏实现拆分,但操作步骤比前两个工具繁琐,不推荐优先使用。
内容的提问来源于stack exchange,提问作者Eszopiclone-3mg
相关产品推荐
相关产品推荐

