os.path全部命令可参考:https://www.runoob.com/python/python-os-path.html
路径合并——os.path.join()
命令:os.path.join(path1,path2,path3)
功能:把目录和文件名合成一个路径。
案例:
import os
path_1 = "E:/dataset/Caltech/annotations/V000.vbb"
path_2 = "set00"
path_3 = "V000.vbb"
print(os.path.join(path_1,path_2))
print(os.path.join(path_1, path_2, path_3))
结果
E:/dataset/Caltech/annotations/V000.vbb\set00
E:/dataset/Caltech/annotations/V000.vbb\set00\V000.vbb
获取文件名——os.path.basename()
命令:os.path.basename(path)
功能:获取路径下最后一个文件(夹)名。
案例:
import os
path_1 = "E:/dataset/Caltech/annotations/set00/V000.vbb"
path_2 = "E:\\dataset\\Caltech\\annotations\\set00\\V000.vbb"
path_3 = "E:/dataset/Caltech/annotations/set00"
path_4 = "E:\\dataset\\Caltech\\annotations\\set00"
print(os.path.basename(path_1))
print(os.path.basename(path_2))
print(os.path.basename(path_3))
print(os.path.basename(path_4))
结果
V000.vbb
V000.vbb
set00
set00
分离扩展名——os.path.splitext()
命令:os.path.splitext(path)
功能:把路径分割成路径名(dirname ) 和 文件名(basename)。返回一个元组,默认返回(fname,fextension)元组。
import os
path_1 = "E:/dataset/Caltech/annotations/set00/V000.vbb"
path_2 = "E:/dataset/Caltech/annotations/set00"
print(os.path.splitext(path_1))
print(os.path.splitext(path_2))
print(os.path.splitext(path_1)[0])
print(os.path.splitext(path_1)[1])
结果
('E:/dataset/Caltech/annotations/set00/V000', '.vbb')
('E:/dataset/Caltech/annotations/set00', '')
E:/dataset/Caltech/annotations/set00/V000
.vbb
路径是否存在——os.path.exists()
命令:os.path.exists((path)
功能:分离文件名与扩展名;默认返回(fname,fextension)元组。
import os
path_1 = "E:/dataset/Caltech/annotations/set00/V000.vbb" # 存在目录
path_2 = "E:/dataset/Caltech/annotations/set00" # 存在目录
path_3 = "E:/dataset/Caltech/annotations/set00/V000.vbbx" # 不存在目录
path_4 = "E:/dataset/Caltech/annotations/set00x" # 不存在目录
print(os.path.exists(path_1))
print(os.path.exists(path_2))
print(os.path.exists(path_3))
print(os.path.exists(path_4))
结果
True
True
False
False