Mws*_*cer 6 python python-3.x os.path
这些在字符串值上是相等的,但它们真的相同吗?怎么回事?
import os
path_name1 = os.path.abspath(os.path.dirname(__file__))
path_name2 = os.path.dirname(os.path.abspath(__file__))
print(path_name1)
print(path_name2)
Run Code Online (Sandbox Code Playgroud)
小智 4
根据here, 的值__file__是一个字符串,是在加载器导入模块时设置的。从这里__file__你可以看到的值为
模块数据存储的路径(内置模块不设置)。
通常,该路径已经是模块的绝对路径。因此,代码的第 4 行可以简化为path_name2 = os.path.dirname(__file__). 显然,代码的第 3 行可以表示为path_name1 = os.path.abspath(path_name2)(现在让我们忽略执行顺序)。
接下来就是看看会dirname做什么。事实上,您可以将dirname其视为 的包装器os.path.split,它将路径分为两部分:(head, tail)。tail是给定路径的最后一部分,head也是给定路径的其余部分。因此,这path_name2只是包含加载文件的目录的路径。而且,path_name2是绝对路径。因此os.path.abspath(path_name2)与 相同path_name2。所以,path_name1与 相同path_name2。
| 归档时间: |
|
| 查看次数: |
2106 次 |
| 最近记录: |