Python获取代码文件路径

小结

获取代码文件目录相对路径
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文件夹下生成。

发布了19 篇原创文章 · 获赞 10 · 访问量 4590

猜你喜欢

转载自blog.csdn.net/Dragon_Prince/article/details/104195200
今日推荐