假设您在主文件夹中,想要调用文件
first_file.py
,然后打开文件
readme.txt
。
main_folder
│
└───first_folder
│ │ first_file.py
│ │
| └───second_folder
│ │ readme.txt
│
└─── ...
Python 提供了一个名为 __file__
的属性,它返回文件的绝对路径。例如,假设 first_file.py
的内容只有一行代码,用于打印此路径:print(__file__)
。
现在,如果我们从 main_folder
调用 first_file.py
,我们将得到与从 first_folder
调用它相同的结果(请注意,在 Windows 中,结果会略有不同):
"/Users/<username>/Documents/github/main_folder/first_folder/first_file.py"
如果我们想要获取first_file.py
的文件夹,我们需要导入库os
并使用方法os.path.dirname(__file__)
。
最后,我们只需将此文件夹与我们想要从中访问的文件夹(second_folder
)和文件名(readme.txt
)连接起来即可。
简化后,结果代码如下:
import os
DIR_ABS_PATH = os.path.dirname(__file__)
README_PATH = os.path.join(DIR_ABS_PATH, 'second_folder', 'readme.txt')
而README_PATH的值为:
"/Users/<username>/Documents/github/main_folder/first_folder/second_folder/readme.txt"
这样做,您也不会遇到与 Visual Studio Code 调试器路径相关的任何问题,并且您将能够从任何地方调用 first_file.py
。
os.getcwd()
是什么?如果它不是包含文件的同一目录,那么相对路径就无法工作。 - Dan D.