如何在 Python 中像 HTML 和 C 那样使用简单的 ../../path/to/file
来表示相对位置呢?
Pathlib 内置库
使用 Python 3.4 起自带的 Pathlib
库,可以跨平台 (Unix/Windows)表示相对位置。
假设我们的文件树如下:
1
2
3
4
5
6
.
├── assets
│ └── moto.txt
└── path
└── to
└── file.txt
简单的相对路径
若我们处于根目录下。我们想访问 file.txt
,只需:
1
2
3
4
from pathlib import Path
path1 = Path('path', 'to', 'file.txt')
path2 = Path('path')/'to'/'file.txt'
path3 = Path('path/to/file.txt')
以上 3 种方法等效,其中第 3 种最简单。
用下面的代码可验证,在 Linux 和 Windows 下均可正常读取文件。
1
2
3
4
5
6
import os
os.getcwd()
from pathlib import Path
path = Path('path/to/file.txt')
with open(path) as f:
print(f.readlines())
包含上一级的相对路径
若我们处于 path
目录下。我们想访问 moto.txt
,只需:
1
2
3
4
from pathlib import Path
path1 = Path('..', 'assets', 'moto.txt')
path2 = Path('..')/'assets'/'moto.txt'
path3 = Path('../assets/moto.txt')
以上 3 种方法等效,其中第 3 种最简单。
用下面的代码可验证,在 Linux 和 Windows 下均可正常读取文件。
1
2
3
4
5
6
import os
os.getcwd()
from pathlib import Path
path = Path('../assets/moto.txt')
with open(path) as f:
print(f.readlines())