Pydoc.doc无法检索"os.path.sep"



我在交互模式下用os.path.sep检查帮助实用程序,然后得到:

In [59]: help(os.path.sep)
Related help topics: lambda, or, and, not, in, is, BOOLEAN, COMPARISON,BITWISE, SHIFTING, BINARY, FORMATTING, POWER, UNARY, ATTRIBUTES,SUBSCRIPTS, SLICINGS, CALLS, TUPLES, LISTS, DICTIONARIES

运算符优先级


下表总结了 Python 中的运算符优先级,来自 从最低优先级(约束力最小(到最高优先级(最 绑定(。 同一框中的运算符具有相同的优先级。 除非 语法是显式给出的,运算符是二进制的。 运算符 从左到右的同一框组(除了幂,它 组从右到左(。

但是,当我尝试使用 pydoc 检索它时

In [61]: with open("osPathSep_help.md", "w") as fout:
...:     pydoc.doc(os.path.sep, output=fout)
...:     
No Python documentation found for '/'.
Use help() to get the interactive help utility.
Use help(str) for help on the str class.
In [62]: os.stat("osPathSep_help.md").st_size
Out[62]: 0

如何获得与报价相同的内容?

下表总结了 Python 中的运算符优先级,来自 从最低优先级(约束力最小(到最高优先级(最

要理解这种行为,你必须进入os.path库源代码。如果你进入代码,那么你会找到所有这些变量

curdir = '.'
pardir = '..'
extsep = '.'
sep = '\'
pathsep = ';'
altsep = '/'
defpath = '.;C:\bin'
devnull = 'nul'

现在您要做的是将os.path.sep作为函数进行访问,但如您所见,它不是一个函数,而是一个值分配为"\">的变量

所以os.path.sep总是,这就是为什么当你做help(os.path.sep)时你会得到的结果

运算符优先级

下表总结了 Python 中的运算符优先级,来自 从最低优先级(约束力最小(到最高优先级(最 绑定(。同一框中的运算符具有相同的优先级。除非 语法是显式给出的,运算符是二进制的。运算符在 从左到右的同一框组(除了幂,哪些组 从右到左(。

这将与您在这样做时得到的结果相同

help('\')

现在您的下一个问题是它如何与help一起工作?

因此,如果您检查帮助的源代码,则会提到

"""
Define the built-in 'help'.
This is a wrapper around pydoc.help (with a twist).
"""

所以帮助是在内部使用pydoc.help

所以如果你正在使用

pydoc.help('\')pydoc.help(os.path.sep)你会得到你想要的输出。

最新更新