踩过的坑:__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__的路径,则获得的是引用文件的路径。
posted @ 2019-06-25 15:09  Flylater  阅读(279)  评论(0编辑  收藏  举报