踩过的坑:__file__、__package__和__name__
不说废话,直接上示例结构图

Path.py内容如下:
import os
path1 = os.path.dirname(os.path.abspath(__file__))
path2 = os.path.abspath(__package__)
path3 = os.path.dirname(os.path.abspath(__name__))
if __name__ == "__main__":
    print(path1)
    print(path2)
    print(path3)
运行Path.py结果如下:

TestPath.py内容如下:
from package1.Path import path1, path2, path3
if __name__ == '__main__':
    print(path1)
    print(path2)
    print(path3)
运行TestPath.py结果如下:

结论
- 使用os.path获取__file__的路径,始终是获得的初始文件的路径。
 - 使用os.path获取__package__的路径,获得的是初始文件被引用现状的路径。
 
\package2\package1 表示package1被引用到了package2里面。
- 使用os.path获取__name__的路径,则获得的是引用文件的路径。
 
                    
                
                
            
        
浙公网安备 33010602011771号