尽管文件不存在,但找不到文件错误

File not found error altough file does not exist

我正在尝试使用 python 中的 with open () 函数读取文件。我通过基本路径提交文件路径,然后在其上添加相对路径:

filepath = base_path + path_to_specific_file

with open (filepath) as l:
    do_stuff()

base_path 使用 linux home 符号(我在 VM 上使用 Ubuntu)~/base_path/ 因为我想在每个设备上调整文件路径对其进行硬编码。

这不起作用。当我执行代码时,它抛出一个找不到文件的错误,尽管路径存在。我什至可以通过单击 vscode 终端中的路径打开它。

根据这个帖子:

File not found from Python although file exists

问题是 ~/ 而不是 /home/username/。有没有办法替换它以使其在具有正确路径的每个设备上工作?由于我没有足够的声誉,我无法对此线程发表评论,因此我需要创建这个新问题。抱歉。

您可以加​​入路径,例如与:

filepath = '/'.join((basepath, path_to_specific_file))

或者按照 Kris 的建议进行操作:使用 pathlib:

>>> basepath = Path('/tmp/')
>>> path_to_specific_file = Path('test')
>>> filepath = basepath / path_to_specific_file
>>> print(filepath)
/tmp/test

编辑:

要访问 $HOME (~),您可以使用 Path.home().

为此,您可以使用 pathlib 中的 expanduser()。例子

import pathlib
filepath = pathlib.Path(base_path) / path_to_specific_file
filepath = filepath.expanduser() # expand ~

with open(filepath) as l:
    do_stuff()

这应该没问题。