是否可以使用 python PyDoc 模块来 return 包含内容的字符串而不是仅仅打印它?
Is it possibile to have python PyDoc module to return a string with the content instead of just printing it?
函数 pydoc.doc()
returns None
,但我想捕获函数打印的输出,如何使用 python 代码实现?
pydoc.doc
有 output
参数,它应该是支持 .write
的东西,你可以使用 io.StringIO
来达到这个目的,方法如下:
import io
import pydoc
f = io.StringIO()
pydoc.doc(object, output=f)
f.seek(0)
objectdoc = f.read()
print(type(objectdoc))
print(objectdoc)
输出:
<class 'str'>
Python Library Documentation: class object in module builtins
class object
| The most base type
请注意 io.StringIO
的行为通常与文件一样,但不保存在磁盘上(=不持久)。我使用 object
作为示例,因为它的文档很短。
为 pydoc.doc
的输出选项创建文本缓冲区
import pydoc
from io import StringIO
buffer = StringIO()
pydoc.doc('math.cos', output=buffer)
text = buffer.getvalue()
函数 pydoc.doc()
returns None
,但我想捕获函数打印的输出,如何使用 python 代码实现?
pydoc.doc
有 output
参数,它应该是支持 .write
的东西,你可以使用 io.StringIO
来达到这个目的,方法如下:
import io
import pydoc
f = io.StringIO()
pydoc.doc(object, output=f)
f.seek(0)
objectdoc = f.read()
print(type(objectdoc))
print(objectdoc)
输出:
<class 'str'>
Python Library Documentation: class object in module builtins
class object
| The most base type
请注意 io.StringIO
的行为通常与文件一样,但不保存在磁盘上(=不持久)。我使用 object
作为示例,因为它的文档很短。
为 pydoc.doc
的输出选项创建文本缓冲区import pydoc
from io import StringIO
buffer = StringIO()
pydoc.doc('math.cos', output=buffer)
text = buffer.getvalue()