【发布时间】:2023-03-13 12:24:01
【问题描述】:
我有一本存储在单个纯文本文件中的大书,我想解析它以便为每一章创建单独的文件。我有一些简单的正则表达式可以找到每一章的标题,但我很难捕捉到它们之间的所有文本。
import re
txt = open('book.txt', 'r')
for line in txt :
if re.match("^[A-Z]+$", line):
print line,
我知道这是相当初级的,但我对 python 还很陌生,这让我有点难过。目前我正在逐行进行,所以我的思考过程是:
- 如果该行是章节标题:创建一个新文件“chapter_title.txt”
- 如果下一行不是章节标题:将该行写入 chapter_title.txt
虽然我尝试将其实际写出来但不太成功。感谢您的帮助!
编辑: 具体来说,我对文件 I/O 的 Python 语法感到困惑。我试过了:
for line in txt :
if re.match("^[A-Z]+$", line):
f = open(line + '.txt', 'w')
else f.write(line + "\n")
作为我的一般方法,但这不会像写的那样工作。希望帮助构建循环。谢谢
【问题讨论】:
-
问题到底是什么?看起来你的方向是对的。
-
基本上我正在寻求语法方面的帮助。该结构对我来说很有意义,但我在文件 I/O 上苦苦挣扎
-
@gweintraub 嗯...你怎么知道这行是不是一章?
-
你能从输入文件中发布一些文本吗?
-
@KevinGuan 我的正则表达式找到章节标题。它们全部采用大写格式,并且单独排成一行。这部分代码确实有效。
标签: python regex parsing text-analysis