2023-05-11 17:50:23
要实现读取TXT小说文件并按每一回显示打印出来,我们可以使用Python的正则表达式来匹配每一回的内容。以下是详细的实现步骤和代码示例:
以下是具体的代码实现:
import redef read_novel_by_chapter(file_path): # 读取文件内容 with open(file_path, 'r', encoding='utf-8') as file: text = file.read() # 定义正则表达式模式,匹配每一回的标题和内容 # 假设每一回的标题格式为“第X回 ...”,后面跟着该回的内容,直到下一个标题或文件结束 pattern = re.compile(r'第[一二三四五六七八九十百]+回s+[^n]+n(.*?)(?=第[一二三四五六七八九十百]+回s+[^n]+n|Z)', re.DOTALL) # 查找所有匹配的章节 chapters = pattern.findall(text) # 打印每一回的内容 for i, chapter in enumerate(chapters, 1): print(f"n=== 第{i}回 ===") print(chapter.strip()) # 去除首尾空白字符# 调用函数,传入小说文件的路径read_novel_by_chapter('西游记.txt')代码说明:第[一二三四五六七八九十百]+回:匹配“第一回”、“第二回”等标题。
s+[^n]+n:匹配标题后的内容,直到换行符。
(.*?):非贪婪匹配,匹配该回的内容,直到下一个标题或文件结束。
(?=第[一二三四五六七八九十百]+回s+[^n]+n|Z):正向预查,确保匹配到下一个标题或文件结束。
假设小说文件内容如下:
第一回 灵根育孕源流出 心性修持大道生话说...第二回 悟彻菩提真妙理 断魔归本合元神却说...运行上述代码后,输出将类似于:
=== 第1回 ===话说...=== 第2回 ===却说...注意事项:通过这种方法,你可以灵活地按回目读取并打印小说内容。