Python程序运行时获取当前目录的坑和解决方法

from pathlib import Path
import os
import sys

# 获取执行文件所在目录

# 部分文件运行后会释放到缓存目录再启动,运行后读取到的是缓存目录的路径,而不是当前文件执行时的目录,可用path1这个方法获取执行时文件的目录
path1 = os.path.dirname(os.path.realpath(sys.argv[0]))
print(path1)

# path2获取的路径,不适应于会释放到缓存目录执行的情况
# 例如pyinstaller打包的程序,文件包比较大时,它会把打包的文件分成多个释放到系统的缓存目录,这时候path2获取的则是缓存目录的路径
path2 = os.path.dirname(os.path.abspath(__file__))
print(path2)

# 用pathlib获取当前目录 ,获取更多上级可级联 .parent ,如:Path(__file__).resolve().parent.parent.parent
path3 = Path(__file__).resolve().parent
print(path3)
posted @ 2022-05-28 11:30  zanze  阅读(731)  评论(0)    收藏  举报