【python3学习笔记】os.path.relpath(path[, start])

一、定义

  • os.path.relpath(path[, start])
  • 从start后面第一个文件夹或者文件开始计算相对路径:path一般是绝对路径,而start是path的一部分。

二、使用

2.1 引入os模块,这是处理系统需要的模块

import os

2.2 确定当前所在的文件夹,即当前文件所在的位置

os.getcwd()
# 输出
'D:\\source code\\SR'

2.3 用os.path.relpath把绝对路径转换为相对路径

用这个方法是把绝对路径转换为相对路径,但表示的是从哪里到哪里所经过的。

print(os.path.relpath('D:\\source code\\SR\\experiments\\S', 'experiments'))
# 输出
S

2.4 第二个参数如果不输入或者空白的话

如果输入的第二个路径为空白,那么相对路径是从第三个文件夹(包括第三个文件夹)开始的

print(os.path.relpath('D:\\source code\\SR\\experiments\\S', ''))
# 输出,experiment是第三个文件夹
experiments\S

# 直接省略掉第二项,也是同样的效果
print(os.path.relpath('D:\\source code\\SR\\experiments\\S')) # 去掉了第二项strat参数,效果和空白同等
# 输出,experiment是第三个文件夹
experiments\S

如果输入第二个路径为空白,但是路径中的文件夹不超过三个的情况下,相对路径默认为当前位置。

print(os.path.relpath('D:'))
# 输出,一个点
'.'
os.path.relpath('D:\\source code', '')
# 输出,两个点
'..'
print(os.path.relpath('D:\\source code\\SR'))
# 输出,一个点
'.'

2.5 若前往的目录没有该文件夹,不会自动创建一个新的文件夹

os.path.relpath('D:\\source code\\SR\\requirement.txt')
# 输出
'..\\SR\\requirement.txt'

2.6 从文件夹到文件过度的方式

os.path.relpath('D:\\source code\\SR\\env\\train.py')
# 输出
..\\SR\\train.py'
### Python `os.path.relpath` 函数详解 #### 定义与功能 `os.path.relpath(path, start=None)` 是用于获取相对于当前目录或指定起始路径的相对路径的一个方法。此函数返回从 `start` 到目标 `path` 的最短路径字符串表示形式[^1]。 #### 参数说明 - `path`: 需要转换成相对路径的目标路径。 - `start`: 可选参数,定义计算相对路径时使用的起点,默认为当前工作目录。 #### 返回值 该函数返回一个字符串类型的相对路径表达式。 #### 使用实例 ```python import os # 获取相对于项目根目录下的测试模块路径并添加到sys.path中 relative_path = os.path.relpath('../test') print(f"The relative path is: {relative_path}") # 输出示例:假设脚本位于 'doc' 文件夹下,则输出应类似于 '../test' ``` 上述代码片段展示了如何利用 `os.path.relpath()` 来动态构建相对于执行文件所在位置的其他文件系统的访问路径,并将其追加至 Python 解释器搜索路径列表 `sys.path` 中以便于导入自定义包或模块。 为了更好地理解这个过程,可以考虑以下更具体的例子: ```python import os current_directory = os.getcwd() target_directory = "/home/user/project/src" # 不提供第二个参数则默认基于当前工作目录 relative_to_current_dir = os.path.relpath(target_directory) print(f"Relative to current directory ({current_directory}): {relative_to_current_dir}") ``` 这段代码打印出了从当前工作目录到达 `/home/user/project/src` 所需经过的相对路径。 如果想要创建一个相对于特定起始点而不是当前工作目录的路径,可以通过传递第二个参数来实现这一点: ```python specific_start_point = "/home/user" relative_from_specific_start = os.path.relpath("/home/user/project/data", specific_start_point) print(f"Relative from '/home/user': {relative_from_specific_start}") ``` 这将展示当给定不同起点时所得到的不同相对路径结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值