一、/和\的区别
常用’/‘来表示相对路径,’\‘来表示绝对路径,路径里\\是转义的意思
绝对路径,用反斜杠 \
E:\test
E:\test\file
E:\test\file\data
网页网址和linux、unix系统下一般都用’/‘
二、绝对路径和相对路径
例如当前操作的py文件位于E:\test\file中
./ 表示当前路径,相当于E:\test\file
../ 表示当前路径的上一级路径,相当于E:\test
../../ 表示当前路径上上一级路径,相当于E:
三、os库操作
# 当前路径
>>> import os
>>> os.getcwd()
'E:\\Coding\\pycharm\\cifar10'
# 修改当前工作目录
>>> os.chdir("C:\\Windows")
>>> os.getcwd()
'C:\\Windows'
# 返回 path 参数的绝对路径的字符串
os.path.abspath(".") ,获取当前文件所在路径;
os.path.abspath("..") ,获取当前文件所在路径的上一层路径;
# 可用于将相对路径转换为绝对路径 (当path = '.'时,表示当前工作目录)
>>> os.getcwd()
'E:\\Coding\\pycharm\\cifar10'
>>> os.path.abspath(".")
'E:\\Coding\\pycharm\\cifar10'
>>> os.path.abspath("..")
'E:\\Coding\\pycharm'
# 路径拼接
os.path.join() 函数中可以传入多个路径:
1.如果各组件名首字母不包含 ‘/’,则函数会自动加上;
2.会从第一个以“/”开头的参数开始拼接,之前的参数全部丢弃;
3.优先判定上一种情况。若无,则如果出现“./”开头的参数,会从“./”开头的参数的上一个参数开始拼接;
>>> print('1:', os.path.join("aaa", "bbb", "ccc.txt"))
1: aaa\bbb\ccc.txt
>>> print('2:', os.path.join("aaa", "/bbb", "ccc.txt"))
2: /bbb\ccc.txt
>>> print('3:', os.path.join("aaa", "./bbb", "ccc.txt"))
3: aaa\./bbb\ccc.txt
d = os.path.dirname(__file__) #返回当前文件所在的目录
# __file__ 为当前文件, 若果在ide中运行此行会报错,可改为 #d = os.path.dirname('.')
#获得d所在的目录,即d的父级目录
parent_path = os.path.dirname(d)
#获得parent_path所在的目录即parent_path的父级目录
parent_path = os.path.dirname(parent_path)
eg:
>>> path = "C:\\Windows\\system32\\xcopy.exe"
>>> os.path.dirname(path) = os.path.dirname(__file__)
'C:\\Windows\\system32'
>>> os.path.basename(path)
'xcopy.exe'
>>> os.path.split(path) # 相当于前两个函数的组合使用
('C:\\Windows\\system32', 'xcopy.exe')