python - 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)
你会得到你想要的输出。
推荐阅读
- python - 我需要帮助将 Matlab find() 语句转换为 Python
- java - plexus-compiler-eclipse 支持哪个版本的 Java?
- linux - 符号查找错误:未定义符号:FT_Get_Font_Format
- angular - 在Angular中使用子组件的属性?
- sql - SQL Server & XML:如何从 sql 表中获取 xml 属性?
- python - 如何在 python 中将 .csv 转换为 .npz?
- python - 强制一个特定值的线性回归
- linux - 找不到以下 Boost 库:boost_python2 尝试配置 boost 以使工作 pyopenpose
- powershell - PowerShell:匹配字符串,在多个文件中添加文本行尾
- .htaccess - .htaccess 重写规则意外行为