如何获取当前文件目录的完整路径?

新手上路,请多包涵

如何获取当前文件的目录路径?我试过了:

 >>> os.path.abspath(__file__)
'C:\\python27\\test.py'

但我想要:

 'C:\\python27\\'

原文由 Shubham 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 521
2 个回答

特殊变量 __file__ 包含当前文件的路径。从中我们可以使用 pathlibos.path 模块获取目录。

蟒蛇 3

对于正在运行的脚本的目录:

 import pathlib
pathlib.Path(__file__).parent.resolve()

对于当前工作目录:

 import pathlib
pathlib.Path().resolve()

Python 2 和 3

对于正在运行的脚本的目录:

 import os
os.path.dirname(os.path.abspath(__file__))

如果您的意思是当前工作目录:

 import os
os.path.abspath(os.getcwd())

请注意, file 前后是两个下划线,而不仅仅是一个。

另请注意,如果您以交互方式运行或从文件以外的其他内容(例如:数据库或在线资源)加载代码,则可能无法设置 __file__ 因为没有“当前文件”的概念。上面的答案假设最常见的情况是运行文件中的 python 脚本。

参考

  1. python 文档中的 pathlib
  2. os.path - Python 2.7os.path - Python 3
  3. os.getcwd - Python 2.7os.getcwd - Python 3
  4. file 变量是什么意思/做什么?

原文由 Bryan Oakley 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 Path 来自 pathlib 是自 Python 3 以来的推荐方式:

 from pathlib import Path
print("File      Path:", Path(__file__).absolute())
print("Directory Path:", Path().absolute()) # Directory of current working directory, not __file__

注意: 如果使用 Jupyter Notebook, __file__ 不会返回预期值,因此必须使用 Path().absolute()

原文由 Ron Kalian 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题