一、定义
- 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'