将help()函数内容的输出重定向到文件

时间:2018-08-20 07:28:50

标签: python

我正在学习硒,打算检查可用的方法。

browser = webdriver.Chrome()
browser.get(start_url)
help(browser)

帮助文档太长,因此我想将它们复制到文件中。

In [19]: with open("webdriver.md", "w") as file:
    ...:     file.write(help(browser))
    ...:     

TypeError: write() argument must be str, not None

任何pydoc都无济于事

In [23]: pydoc.writedoc("browser")
No Python documentation found for 'browser'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.

如何将帮助(浏览器)写入纯文本文件。

2 个答案:

答案 0 :(得分:5)

bulit-in help()a wrapper around pydoc.Helper,它由default写入stdout,您可以暂时将sys.stdout重定向到文件:

>>> import contextlib
>>> with contextlib.redirect_stdout(open('browser_help.txt', 'w')):
...     help(browser)

或者您可以直接致电pydoc.Helper

>>> import pydoc
>>> with open('browser_help.txt', 'w') as f:
...     h = pydoc.Helper(output=f)
...     h(browser)

答案 1 :(得分:1)

您可以尝试更改当前的标准输出:

import sys
sys.stdout = open('webdriver.md', 'w')
help(browser)

Python 3.4 开始,您还可以使用contextlib.redirect_stdout

from contextlib import redirect_stdout
with redirect_stdout(open('webdriver.md', 'w')):
    help(browser)