路径库解析函数的不同行为



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

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

根据我的实验,与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()返回您的相对路径。

为了解决您的问题,我想您的程序无法在您的窗口部署中找到这样的配置.ini。尝试查看os.getcwd()的结果 您将知道为什么会失败。

编辑:窗口中的Python的行为与我描述的一样。但是,在Linux平台中,无论如何它都能够返回abspath。

相关内容

  • 没有找到相关文章

最新更新