赞
踩
关于__file__属性,python官方文档的定义是:
__file__
is the pathname of the file from which the module was loaded, if it was loaded from a file. The__file__
attribute may be missing for certain types of modules, such as C modules that are statically linked into the interpreter; for extension modules loaded dynamically from a shared library, it is the pathname of the shared library file.
翻译:
如果模块是从文件加载的,那么__file__就是文件的路径名。模块是从这个路径加载的。某些类型的模块可能缺少该属性,例如静态链接到解释器的C模块; 对于从共享库动态加载的扩展模块,它是共享库文件的路径名。
虽然文档说了__file__是文件路径名,但是却没有说是绝对路径还是相对路径。因为模块既可以从绝对路径加载也可以从相对路径加载。所以这个__file__的值可能是绝对路径也可能是相对路径。示例:
如我们在某个模块里新建tests.py文件,文件里面的内容为:
- # coding:utf-8
- # test.py 打印__file__的值
-
- print(__file__)
运行后可能存在的输出结果:
current_path = os.path.abspath(__file__)
current_dir = os.path.dirname(os.path.abspath(__file__))
示例:
在前面两步的基础上,可以使用os.path.join()进行路径拼接。
[1] 关于__file__属性:https://docs.python.org/3/reference/datamodel.html
[2] 关于os.path的操作:https://docs.python.org/3.7/library/os.path.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。