pydoc.render_doc() 添加字符 - 如何避免?
已经有一些问题提到过这个,但似乎没有人真正解决它。
import pydoc
hlpTxt = pydoc.render_doc(help)
这个已经能做到我想要的功能!在(正确的)控制台打印出来时看起来完美,但却多了些额外的字符:
_\x08_H\x08He\x08el\x08lp\x08pe\x08er\x08r
比如在Maya里,它看起来像是充满了◘
符号!而help()
显示得也很完美。
去掉\x08
后,每个字母都会多出一个:
__HHeellppeerr
这也没什么用。
有人评论说,当把它传给子进程或者写入文件时可以正常工作。我也试过,但没成功。有没有其他方法呢
hlpFile = open('c:/help.txt', 'w')
hlpFile.write(hlpTxt)
hlpFile.close()
?因为这样我还是遇到同样的问题。Notepad++实际上在那些地方显示了BS符号。是的,显然是代表退格。
总之:这些符号被添加的肯定是有原因的,虽然去掉它们可能有效,但我想不出为什么不能一开始就不产生这些符号!
所以最后有没有其他的pydoc
方法我没发现?或者是我还没看到的str.encode/decode
的东西?
顺便说一下:我不是在找help.__doc__
!
1 个回答
8
在Python 2中,你可以用 pydoc.plain
来去掉加粗的部分:
pydoc.plain(pydoc.render_doc(help))
>>> help(pydoc.plain)
Help on function plain in module pydoc:
plain(text)
Remove boldface formatting from text.
在Python 3中, pydoc.render_doc
允许你使用一个 renderer
:
pydoc.render_doc(help, renderer=pydoc.plaintext)