背景
我正在写一本关于在 python 中做事的 html 书。它包含大量散布在输出中的文本和代码。我希望能够随时修改我的 python 代码,并拥有一个脚本来批量更新所有的 HTML 文件。
由于我将拥有大量的 html 文件和大量的 python 片段,因此每次更改某些内容时,我都无法手动将 python 复制并粘贴到 HTML 中。那将是一场噩梦。
编辑:
所以我有两个免费的文件:一个包含逻辑的 python 文件和一个 HTML 文件,它是那个 python 代码的教程。我希望能够随意编辑我的 python 文件,并标记它们,以便我的 HTML 文件也可以更新。
目前,当我更新我的 python 代码时,我只运行一个单独的 python 脚本,在两个文件中查找匹配的标签,并将其标签之间的 python 代码复制到其匹配标签之间的 HTML。我在整个文件中有很多这样的标签。我也有很多这样的文件对。
标签是 ^tagname 并以 ^/tagname 结尾
但是,这仅适用于代码本身,而不适用于代码的输出。我还希望能够(如果需要)将带标签的 python 的输出复制到 html 中,并让它出现在稍微修改的标签中。
我在考虑输出 &tagname 和 &/tagname。
结束编辑
但是从 python 文件中获取输出来做同样的事情被证明是相当困难的。
我的python代码是:(testCode.py)
#%%
# ^test
x=1
print(x)
# ^/test
#%%
print("this output I don't care about")
#%%
# ^test2
y=2
print(y)
# ^/test2
所以, test 和 test2 标签是我想要拆分代码的方式。
我的 html 看起来像这样:
<p> Some text explaining the purpose of the python code in test1 </p>
<!--^test-->
<!--^/test-->
<p> some more text explaining about test2</p>
<!--^test2-->
<!--^/test2-->
python 文件中 test1 标记之间的代码在上面的注释之间被复制。测试 2 也是如此。
这是迄今为止我在实际 html 文档中的截图。它看起来很棒,但缺少输出。
问题是我无法根据代码中注释内的标签来拆分输出。我需要使用这些标签将输出拆分为与每个标签关联的卡盘。
期望的输出
我想要的输出是一个字符串,如下所示:
# ^test
1
# ^/test
this is output I don't care about
# ^test2
2
# ^/test2
试图
我已经成功地将文件的输出捕获到一个字符串中,使用:
python_file = 'testCode.py'
process_result = subprocess.run(['python', './' + python_file], capture_output=True, universal_newlines=True)
output = str(process_result.stdout)
但显然这只是打印:
1
this is output I don't care about
2
我正在使用子进程,因为这个函数最终将在一个循环中被调用,其中包含一个 python 文件列表来更新输出。
我完全无法访问适当的标签并将它们穿插其中。
也许我正在接近这个错误。

