📜  python 相对路径 - Python (1)

📅  最后修改于: 2023-12-03 14:46:17.391000             🧑  作者: Mango

Python 相对路径

在 Python 中,我们有时需要使用相对路径来指定文件或目录的位置。相对路径是相对于当前工作目录的路径,而不是绝对路径。Python 提供了一些模块来帮助我们处理相对路径。

相对路径格式

相对路径可以是以下格式之一:

  • .:当前目录
  • ..:上级目录
  • path/to/file:相对于当前目录的文件路径(可以包含多个目录)
  • /path/to/file:相对于根目录的文件路径(可以包含多个目录)
os 模块

os 模块是 Python 的标准库之一,提供了处理文件和目录的函数。os 模块中的 getcwd() 函数返回当前工作目录的绝对路径。

import os

cwd = os.getcwd()
print(cwd)  # 输出当前工作目录的绝对路径

我们可以使用 os.chdir() 函数来改变当前工作目录。这样,在后续处理中,相对路径将会基于新的当前工作目录。

os.chdir('/path/to/directory')  # 改变当前工作目录到指定目录

我们还可以使用 os.path.abspath() 函数将相对路径转换为绝对路径。这个函数将根据当前工作目录和传入的相对路径计算出绝对路径。

abs_path = os.path.abspath('path/to/file')
print(abs_path)  # 输出与相对路径等价的绝对路径
pathlib 模块

pathlib 模块是 Python 3.4 中引入的新模块,提供了面向对象的文件系统路径操作。它的路径表示形式是一个 Path 对象,可以方便地操作路径的各个部分。

我们可以使用 Path.cwd() 方法获取当前工作目录的 Path 对象。同样,我们可以使用 Path.chdir() 方法改变当前工作目录。

from pathlib import Path

cwd = Path.cwd()
print(cwd)  # 输出当前工作目录的绝对路径

Path('/path/to/directory').chdir()  # 改变当前工作目录到指定目录

Path 对象还提供了 resolve() 方法,可以将相对路径转换为绝对路径。它基于当前工作目录或者指定的根目录计算出绝对路径。

abs_path = Path('path/to/file').resolve()
print(abs_path)  # 输出与相对路径等价的绝对路径
总结

Python 提供了 os 和 pathlib 两个模块来处理相对路径。os 模块提供了一些函数来操作路径字符串,pathlib 模块提供了面向对象的路径操作。无论使用哪个模块,都可以方便地处理相对路径。同时,我们也需要了解当前工作目录的概念,因为相对路径是相对于当前工作目录的。