尽管文件不存在,但找不到文件错误
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()
这应该没问题。
我正在尝试使用 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()
这应该没问题。