python的相对路径和绝对路径
绝对路径
-
什么是绝对路径
-
绝对路径就是你的文件或者文件夹在电脑中的完整地址。即文件或文件夹在电脑中的存储位置
- 说明一下: 文件就是有后缀名的文件,比如
.txt .py .java .xlsx .docx
等等以.
结尾的都叫文件
文件夹就是用来装文件的盒子
- 说明一下: 文件就是有后缀名的文件,比如
-
绝对路径的写法: 从盘符(c盘、d盘)开始一直到文件所在的具体位置。
在 Windows 系统中,绝对路径是以磁盘名称开头,如 C: 或者 D: ,具体的文件或文件夹名称做结尾。
例如:在桌面上新建一个文件, 命名为xxx.py 那么这个文件的绝对路径为:C:/Users/Admin/Desktop/xxx.py
。 注意这里的admin每个人的电脑用户名都不一样,根据自己电脑的用户名来写
-
-
查看绝对路径的几种方式
-
鼠标点击一下文件或者文件夹,保证文件/文件夹是被选中状态, 然后按住 shift键+鼠标右键(同时按住),染后选择复制文件地址即可
-
鼠标右键文件/文件夹,选择属性,在属性窗口中有一个位置参数, 就是这个文件的绝对路径,选择复制文件地址即可。
-
在此电脑中找到文件/文件夹,点击上方的搜索栏,即可找到文件/文件夹的绝对路径。
-
-
用绝对路径打开python文件
-
打开cmd命令行, 输入"python 文件的绝对路径"即可打开文件
- 例如: 运行xxx.py文件, 输入
python C:/Users/Admin/Desktop/xxx.py
即可
- 例如: 运行xxx.py文件, 输入
-
python代码中写绝对路径
with open("C://Users//Admin//Desktop//xxx.txt", "r") as f: print(f.read())
-
代码解析
- 打开文件, 文件路径为
"C://Users//Admin//Desktop//xxx.txt"
- 打开文件后, 读取文件内容, 并打印出来
- 打开文件, 文件路径为
-
注意事项
- xxx.txt 文件的的绝对路径原本为:
C:/Users/Admin/Desktop/xxx.txt
- 在open 参数内的写的xxx.txt 文件的的绝对路径为:
C://Users//Admin//Desktop//xxx.txt
通过对比两个路径,发现我把绝对路径的单反斜杠统一写成了双反斜杠,然后放到参数中。 - 为什么要写成双反斜杠呢?
因为在python中,有转义字符的语法,反斜杠 / 跟一个字母能实现特殊的功能。
比如/n
是换行,/t
是制表符,/r
是回车,/b
是退格。
上述代码中,如果不加双反斜杠,如果路径中存在一个 能被python当做转义符号处理的字母时,程序会报错
比如:C:/Users/Admin/Desktop/note/xxx.txt
如果不写双反斜杠的话/note
前两个字符/n
就会被当成换行符转义,程序会报错找不到文件, 所以统一写双反斜杠
- xxx.txt 文件的的绝对路径原本为:
-
-
注意: 绝对路径是唯一的,只有一个。
相对路径
-
什么是相对路径
- 相对路径”就是针对当前文件夹这一参考对象,来描述文件路径的形式。相对路径使用
./
或../
表示。- 当前文件夹就是当前文件所在的文件夹。如果你的文件在桌面上,那么桌面就是你的当前文件夹
./
表示当前文件夹../
表示上一级文件夹- 上n级文件夹就用
n个../
表示
- 注意: 相对路径是相对于当前文件所在的文件夹的路径。
- 相对路径”就是针对当前文件夹这一参考对象,来描述文件路径的形式。相对路径使用
-
相对路径的写法
- 现在有一个文件夹路径:
C:/Users/Admin/Desktop/文件夹1/文件夹2
-
假设当前路径就在文件夹2中,那么我要打开文件夹2中的aaa.txt文件,那么相对路径有两种写法
- 写法1:
./aaa.txt
- 写法2:
aaa.txt
这两种写法是一样的 省略./
只针对当前文件夹中的文件
- 写法1:
-
假设当前路径就在文件夹b中,那么我要找到文件夹a中的aaa.txt文件,那么相对路径为
../文件夹a/aaa.txt
- 当前文件夹路径为:
桌面/文件夹b
../
表示上一级文件夹, 就是退到桌面中 那么路径就为桌面/
../文件夹a
表示退到上级文件夹桌面
, 然后进入文件夹a
../文件夹a/aaa.txt
表示上一级文件夹a中的aaa.txt文件 就变成了桌面/文件夹a/aaa.txt
- 当前文件夹路径为:
-
- 现在有一个文件夹路径:
-
如图所示, 以下示例均以图片中的描述来进行展示, 所有示例均需要根据图片进行参考
-
相对路径示例:
-
上图中如果当前文件夹为
文件夹a
, 文件a.txt的相对路径就是./a.txt
- 当前文件夹的路径为:
桌面/文件夹a
- 如果在当前文件夹中的文件相对路径
./
可写可不写 - 此例子也可以写为
a.txt
- 当前文件夹的路径为:
-
上图中如果当前文件夹为
文件夹a
, 文件夹b的相对路径就是../文件夹b
- 当前文件夹的路径为:
桌面/文件夹a
- 如果要找到文件夹b中的b.py, 则相对路径就是
../文件夹b/b.py
- 解释:
../
表示上一级文件夹, b.py是文件夹b中的文件 因为通过上图可以看到文件夹a和文件夹b属于同一级目录(桌面) - 注意: 此时的
../
就不能省略了 可以省略./
只针对当前文件夹中的文件
- 当前文件夹的路径为:
-
如果在当前文件夹为
文件夹a
, 文件夹b中的子文件夹b的相对路径就是../文件夹b/子文件夹b
- 当前文件夹的路径为:
桌面/文件夹a
- 解释:
../
表示上一级文件夹, 文件夹b与文件夹a是同级文件夹, 子文件夹b是文件夹b的子文件夹 - 注意: 此时的
../
就不能省略了 可以省略./只针对当前文件夹中的文件
- 当前文件夹的路径为:
-
如果在当前文件夹为
文件夹a
, 文件夹c中的子文件夹c中的孙子文件c.txt的相对路径就是../文件夹c/子文件夹c/孙子文件c.txt
- 当前文件夹的路径为:
桌面/文件夹a
- 解释:
../
表示上一级文件夹, 文件夹c与文件夹a是同级文件夹, 子文件夹c是文件夹c的子文件夹, 孙子文件c.txt是子文件夹c中的文件 - 注意: 此时的
../
就不能省略了 可以省略./
只针对当前文件夹中的文件
- 当前文件夹的路径为:
-
如果在当前文件夹为
文件夹a
, 文件夹d中的子文件夹d中的孙子文件d2.py的相对路径就是../文件夹d/子文件夹d/孙子文件d2.py
- 当前文件夹的路径为:
桌面/文件夹a
- 解释:
../
表示上一级文件夹, 文件夹d与文件夹a是同级文件夹, 子文件夹d是文件夹d的子文件夹, 孙子文件d2.py是子文件夹d的子文件 - 注意: 此时的
../
就不能省略了 可以省略./
只针对当前文件夹中的文件
- 当前文件夹的路径为:
-
如果当前文件夹为
文件夹d中的子文件夹ddd
,那么文件夹b中的子文件夹b的相对路径就是../../文件夹b/子文件夹b
- 当前文件夹的路径为:
桌面/文件夹d/子文件夹ddd
- 解释:
1.../
表示上一级文件夹 就变成了:桌面/文件夹d
2.../../
表示上一级的上一级文件夹 就变成了:桌面
3.../../文件夹b/子文件夹b
就表示退到上上级文件夹,然后进入文件夹b中的子文件夹b - 注意: 此时的
../
就不能省略了 可以省略./
只针对当前文件夹中的文件
- 当前文件夹的路径为:
-