pathlib resolve函数的不同行为

2024-09-30 12:17:56 发布

您现在位置:Python中文网/ 问答频道 /正文

任务是从ini文件中读取值
我正在使用Pycharm,由于某些原因,它无法从相对路径中找到文件
我使用pathlib.Pathresolve设置绝对路径
因为os.path.abspath("config_file/config.ini")不适用于我的windows安装程序

filepath = pathlib.Path('../../myproject/config_file/config.ini').resolve()
在我当前的机器上工作,但当我在另一台设备上运行代码时,无法再次找到ini文件。
关于这个答案Use resolve() 在使用此函数时,可能会出现一些错误。 这个问题是否已经解决,或者我只是不知道pathlib resolve的功能


Tags: 文件pathconfigoswindows原因inipycharm
1条回答
网友
1楼 · 发布于 2024-09-30 12:17:56

根据我的实验,与os.path.abspath相比,resolve()使用起来并没有那么严格

假设您在脚本下面运行有以下输出,这意味着您正在目录/home/aaa上运行

os.path.abspath("config_file/config.ini")
# /home/aaa/config_file/config.ini

abspath向您返回绝对路径,而不检查config_file/config.ini是否存在

然而,pathlib.Path.resolve()是不一样的。如果需要来自resolve()的绝对路径,则此类文件/home/aaa/config_file/config.ini必须存在。否则,resolve()将向您返回相对路径

为了回答您的问题,我想您的程序在窗口部署中找不到这样的config.ini。试着检查一下os.getcwd()的结果,你就会知道它失败的原因

编辑:窗口中的Python的行为如我所述。但是,在linux平台上,它仍然能够返回abspath

相关问题 更多 >

    热门问题