小结
获取代码文件目录相对路径
os.path.dirname(__file__)
能够获得当前py文件所在目录相对于运行目录的相对路径。
获取代码文件目录绝对路径
os.path.dirname(os.path.realpath(__file__))
能够获得当前py文件所在目录的绝对路径。
获取运行目录路径
os.getcwd()
正文
代码运行时的路径是命令行的路径,所以如果在代码中写了文件的相对路径,但是运行的时候是在外面的文件夹下运行的,这就会出问题,比如下面的代码:
├─relative_path_test
│ └─code
│ └─test.py
#test.py
with open('./test.txt', 'w') as f:
f.write('hahah')
运行的时候在relative_path_test
文件夹下运行,这时候text.txt
是生成在relative_path_test
文件夹下的,而不是code
文件夹,如果想要不管在哪运行都固定在code
文件夹下生成test.txt
,则需要将test.py
代码作如下修改:
#test.py
import os
code_dir = os.path.dirname(__file__)
print(code_dir)
file_path = os.path.join(code_dir, 'test.txt')
with open(file_path, 'w') as f:
f.write('hahah')
在relative_path_test
文件夹下运行code
文件夹的test.py
时,输出如下:
.\code
并且在code
文件夹下生成了test.txt
文件,不管在哪里运行,都会在code
文件夹下生成。