如何用Python/Notepad++将多行文本拆分为单个行文件(修复代码问题)
拆分文本文件每行到独立文件的解决方法
问题原因
你之前的Python代码存在两个核心问题:
- 文件名固定为
i.txt,循环时每次都会覆盖这个文件,最终只保留最后一行内容。 - 没有处理每行开头的
lineX前缀,直接写入了整行原始内容。
可行Python实现方案
修正后的代码会动态生成对应序号的文件名,并提取每行的有效内容:
with open('all.txt', encoding='utf-8') as f: # 从1开始计数,对应1.txt到600.txt的序号 for file_num, line in enumerate(f, start=1): # 拆分每行,提取line前缀后的内容,去除多余换行符 _, content = line.split(maxsplit=1) content = content.strip() # 生成目标文件名并写入内容 with open(f'{file_num}.txt', 'w', encoding='utf-8') as out_file: out_file.write(content)
代码说明
- 直接遍历文件对象,无需一次性读取所有行,更节省内存。
enumerate(f, start=1)让计数从1开始,精准匹配目标文件名的序号。split(maxsplit=1)仅拆分第一个空格,精准提取前缀后的内容;strip()去除多余的换行符和空格。- 用f-string
f'{file_num}.txt'生成动态文件名,彻底避免文件覆盖问题。
Notepad++实现方案(无需代码)
如果不想用Python,可通过Notepad++的可视化操作完成:
- 打开
all.txt,按Ctrl+H打开替换窗口,切换到「正则表达式」模式。 - 第一步:移除每行前缀
- 查找目标:
^(line\d+ )(.*)$ - 替换为:
\2 - 点击「全部替换」,此时文件每行只剩纯内容(如
aaaaaa)。
- 查找目标:
- 第二步:分割行到独立文件
- 点击菜单栏「编辑」→「行操作」→「分割线到文件」。
- 在弹出窗口中设置起始编号为
1,文件后缀为.txt,确认后即可生成1.txt到600.txt。
内容的提问来源于stack exchange,提问作者JinNana97
相关产品推荐
相关产品推荐

