任务是从 ini 文件中读取值
我正在使用 Pycharm,由于某些原因无法从相对路径中找到文件
我用pathlib.Path
resolve
来设置绝对路径
因为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。