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)

浙公网安备 33010602011771号