Python获取当前目录仅返回根目录,求问题原因与解决方法
问题原因及解决方法
核心原因
你混淆了当前Python进程的工作目录和脚本文件所在的目录:
Path().absolute()或os.getcwd()获取的是当前进程的工作目录,这个目录取决于你启动Python的方式(比如终端的当前路径、IDE的默认工作目录设置),而非脚本存放的位置。- 你调用
os.path.dirname(Path().absolute())是取当前工作目录的父目录,若当前工作目录已是根目录Y:\,返回结果自然还是Y:\。
解决方法
如果你想获取当前脚本文件所在的目录(即你预期的Y:\Dev\),用以下代码:
方法1(Pathlib 推荐)
from pathlib import Path # 获取当前脚本所在的目录 script_dir = Path(__file__).parent.absolute() print(script_dir) # 输出 Y:\Dev\
方法2(os模块)
import os # 获取当前脚本所在的目录 script_dir = os.path.dirname(os.path.abspath(__file__)) print(script_dir) # 输出 Y:\Dev\
额外验证步骤
若仍有问题,先确认当前进程的工作目录:
import os from pathlib import Path print("当前工作目录(os):", os.getcwd()) print("当前工作目录(pathlib):", Path.cwd())
如果输出是Y:\,说明你确实从根目录启动了Python进程,此时要么修改启动路径,要么用上述脚本目录方法获取目标路径。
内容的提问来源于stack exchange,提问作者Yohanes Lim
相关产品推荐
相关产品推荐

