获取文件的相对路径时出现问题?

时间:2019-04-09 17:48:49

标签: python python-3.x path

我正在另一台计算机上读取文件。因此,我需要访问文件的完整路径。因此,我尝试使用python的Pathlib模块:

a_path = '/dir1/subdir1/sample.txt'
home = str(Path.home())
a_path = str(home) + str(a_path)

显然,以上代码返回了完整的路径。但是,当我阅读它时,会得到:

FileNotFoundError: [Errno 2] No such file or directory: "/home/user'/dir1/subdir1/sample.txt'"

如何解决以上错误?也许在连接中我遇到了问题。

3 个答案:

答案 0 :(得分:1)

尝试一下。这使用os.path.join将两条路径连接在一起

import os
import pathlib
a_path = 'dir1/subdir1/sample.txt'
home = str(pathlib.Path.home())
print(os.path.join(home, a_path))
#/home/user/dir1/subdir1/sample.txt

答案 1 :(得分:0)

您可以使用join将字符串粘贴在一起。

''.join([str(Path.home()), 'path\\t.txt'])

答案 2 :(得分:0)

首先,'/dir1/subdir1/sample.txt'是绝对路径。如果您希望它是相对路径(似乎是这种情况),则应使用'dir1/subdir1/sample.txt',因此不要使用前导/

使用pathlib库,这将变得非常容易

>>> from pathlib import Path
>>> a_path = "dir1/subdir1/sample.txt"
>>> a_path = Path.home() / a_path
>>> print(a_path)
/home/pareto/dir1/subdir1/sample.txt

再次,确保您未使用绝对路径。否则,您将获得以下内容

>>> print(Path.home() / "/dir1/subdir1/sample.txt")
/dir1/subdir1/sample.txt