gpt4 book ai didi

python - pydoc可以生成子目录吗?

转载 作者:太空宇宙 更新时间:2023-11-03 19:39:31 25 4
gpt4 key购买 nike

有没有办法让pydoc的writedocs()函数为包创建子目录?例如,假设我要记录以下模块:

foo.py
dir/bar.py
dir/__init__.py

当我运行 pydoc.writedocs() 时,我得到以下文件:

foo.html
dir.bar.html

我想得到:

foo.html
dir/bar.html

有什么办法可以做到这一点吗?

最佳答案

pydoc.writedocs 只是循环调用 writedoc,它被记录(并实现)为“在当前目录中写入文件”。我能看到的唯一出路是制作一个修改版本并强制它(即,叹息,monkeypatching)进入模块,或者monkeypatching它的一些关键方面,即打开'open'以写入它所要求的HTML文件的位置打开。具体来说,在您的代码中,您可以执行以下操作:

import pydoc

def monkey_open(name, option):
if option == 'w' and name.endswith('.html'):
name_pieces = name.split('.')
name_pieces[-2:] = '.'.join(name_pieces[-2:])
name = '/'.join(name_pieces)
return open(name, option)

pydoc.open = monkey_open

不是一个优雅或极其强大的解决方案,但“必须必须”...... pydoc 的设计并不是为了让你做你想做的事,所以这个东西需要“硬塞”一下。

关于python - pydoc可以生成子目录吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1208990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com