pydoc.doc无法检索“ os.path.sep”

时间:2018-08-26 08:35:15

标签: python pydoc

我在交互模式下使用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中的运算符优先级,从   最低优先级(最低绑定)到最高优先级(最高

1 个答案:

答案 0 :(得分:1)

要了解此行为,您必须进入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),您将获得所需的输出。