在PHP中,
Python中是否有类似的功能?
__DIR__
魔术常量的值是包含该常量所在文件的目录路径。Python中是否有类似的功能?
os.path.dirname(__file__)
在Python 3.4及更高版本中,你会得到一个绝对路径。
在早期版本的Python中,__file__
指的是模块导入时相对于cwd的文件位置。如果您调用了chdir
,这些信息将会丢失。如果这成为问题,您可以在模块的根目录添加以下内容:
import os.path
_dir = os.path.dirname(os.path.abspath(__file__))
但是,如果你只针对Python 3.4+,这个步骤就不再必要了。
from pathlib import Path
Path(__file__).cwd()
目前我使用的是Python 3.10.2版本,它能够正常工作。
Pathlib vs OS
OS模块将路径表示为字符串,你无法做太多事情。而Pathlib模块将路径表示为特殊对象,具有有用的方法和属性。
https://builtin.com/software-engineering-perspectives/python-pathlib
__file__
是绝对路径,参见https://dev59.com/g2w05IYBdhLWcg3wpDVu#22866630。并且,根据https://dev59.com/g2w05IYBdhLWcg3wpDVu#23616783的演示,`chdir`似乎也不再是一个问题。 - Ben Creasy__dir__
?”...这是因为命名问题 - Python已经使用了dir
和__dir __()
**但用于对象属性获取...**(不要问我为什么),但我个人认为他们本可以想出像__directory__
这样的东西 #耸肩 - jave.web