pydoc.render_doc()添加字符 - 如何避免?

时间:2013-02-28 10:48:54

标签: python character-encoding pydoc

已经有一些问题触及了这一点,但似乎没有人真正解决它。

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的事情?

btw:我不是在寻找help.__doc__

1 个答案:

答案 0 :(得分:4)

在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)