从外部文件读入Python代码/正则表达式

2024-04-27 21:10:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一段Python(Sigil)代码:

  for (id, href) in bk.text_iter():
    html = bk.readfile(id)
    html = re.sub(r'<title></title>', '<title>Mara’s Tale</title>', html)
    html = re.sub(r'<p>Mara’s Tale</p>', '<p class="title">Mara’s Tale</p>',html)
  bk.writefile(id, html)

理想情况下,我希望从外部文本文件中读入正则表达式(或者只读入该代码块)。有什么建议吗?我在Perl中也做过类似的工作,尝试了尝试,但我是Python新手

另外,快速补充问题-是否应该缩进bk.writefile?如果是这样,为什么我的代码可以工作?它看起来好像在for块之外,因此只会写入最后一个文件(它是一个epub,所以有几个html文件),但它正在更新所有相关文件

关于bk,我的理解是,这个对象是整个epub,而这段代码所做的是通过文本iter读取构成epub的每个html文件,因此id是每个单独的文件

编辑以添加

啊!!该bk.writefile确实应该缩进。我成功了,因为在我运行这段代码时,我只有一个html文件


Tags: 文件代码reidfortitlehtmlepub
1条回答
网友
1楼 · 发布于 2024-04-27 21:10:10

至于从文件中读取某些内容,这很容易。假设您在保存脚本的同一文件夹中有文件“my_file.txt”:

f =  open('my_file.txt', 'r')

content = f.read()              # read all content of the file in the sting 'content'
lines   = f.read().splitlines() # read lines of the file in array 'lines'

f.close()

print(lines[0]) # first line
print(lines[1]) # second line
# etc

至于bk.writefile不应该缩进吗?是的,循环似乎多次创建和更改变量html,但只保存最后一次迭代。看起来很奇怪。也许它应该缩进。但这只是一个猜测

相关问题 更多 >