浅谈相对路径和绝对路径

python的相对路径和绝对路径

绝对路径

  1. 什么是绝对路径

    1. 绝对路径就是你的文件或者文件夹在电脑中的完整地址。即文件或文件夹在电脑中的存储位置

      • 说明一下: 文件就是有后缀名的文件,比如 .txt .py .java .xlsx .docx 等等以 . 结尾的都叫文件
        文件夹就是用来装文件的盒子
    2. 绝对路径的写法: 从盘符(c盘、d盘)开始一直到文件所在的具体位置。
      在 Windows 系统中,绝对路径是以磁盘名称开头,如 C: 或者 D: ,具体的文件或文件夹名称做结尾。
      例如:在桌面上新建一个文件, 命名为xxx.py 那么这个文件的绝对路径为:C:/Users/Admin/Desktop/xxx.py。 注意这里的admin每个人的电脑用户名都不一样,根据自己电脑的用户名来写

  2. 查看绝对路径的几种方式

    1. 鼠标点击一下文件或者文件夹,保证文件/文件夹是被选中状态, 然后按住 shift键+鼠标右键(同时按住),染后选择复制文件地址即可
      在这里插入图片描述

    2. 鼠标右键文件/文件夹,选择属性,在属性窗口中有一个位置参数, 就是这个文件的绝对路径,选择复制文件地址即可。
      在这里插入图片描述

    3. 在此电脑中找到文件/文件夹,点击上方的搜索栏,即可找到文件/文件夹的绝对路径。
      在这里插入图片描述

  3. 用绝对路径打开python文件

    1. 打开cmd命令行, 输入"python 文件的绝对路径"即可打开文件

      1. 例如: 运行xxx.py文件, 输入python C:/Users/Admin/Desktop/xxx.py即可
    2. python代码中写绝对路径

          with open("C://Users//Admin//Desktop//xxx.txt", "r") as f:
              print(f.read())
      
    3. 代码解析

      1. 打开文件, 文件路径为"C://Users//Admin//Desktop//xxx.txt"
      2. 打开文件后, 读取文件内容, 并打印出来
    4. 注意事项

      1. xxx.txt 文件的的绝对路径原本为:C:/Users/Admin/Desktop/xxx.txt
      2. 在open 参数内的写的xxx.txt 文件的的绝对路径为:C://Users//Admin//Desktop//xxx.txt
        通过对比两个路径,发现我把绝对路径的单反斜杠统一写成了双反斜杠,然后放到参数中。
      3. 为什么要写成双反斜杠呢?
        因为在python中,有转义字符的语法,反斜杠 / 跟一个字母能实现特殊的功能。
        比如 /n 是换行, /t 是制表符, /r 是回车, /b 是退格。
        上述代码中,如果不加双反斜杠,如果路径中存在一个 能被python当做转义符号处理的字母时,程序会报错
        比如: C:/Users/Admin/Desktop/note/xxx.txt 如果不写双反斜杠的话 /note前两个字符/n就会被当成换行符转义,程序会报错找不到文件, 所以统一写双反斜杠
  4. 注意: 绝对路径是唯一的,只有一个。

相对路径

  1. 什么是相对路径

    1. 相对路径”就是针对当前文件夹这一参考对象,来描述文件路径的形式。相对路径使用 ./ ../ 表示。
      1. 当前文件夹就是当前文件所在的文件夹。如果你的文件在桌面上,那么桌面就是你的当前文件夹
      2. ./表示当前文件夹
      3. ../表示上一级文件夹
      4. 上n级文件夹就用n个../表示
    2. 注意: 相对路径是相对于当前文件所在的文件夹的路径。
  2. 相对路径的写法

    1. 现在有一个文件夹路径: C:/Users/Admin/Desktop/文件夹1/文件夹2
      • 假设当前路径就在文件夹2中,那么我要打开文件夹2中的aaa.txt文件,那么相对路径有两种写法

        1. 写法1: ./aaa.txt
        2. 写法2: aaa.txt
          这两种写法是一样的 省略 ./ 只针对当前文件夹中的文件
      • 假设当前路径就在文件夹b中,那么我要找到文件夹a中的aaa.txt文件,那么相对路径为../文件夹a/aaa.txt

        1. 当前文件夹路径为: 桌面/文件夹b
        2. ../表示上一级文件夹, 就是退到桌面中 那么路径就为桌面/
        3. ../文件夹a表示退到上级文件夹桌面, 然后进入文件夹a
        4. ../文件夹a/aaa.txt 表示上一级文件夹a中的aaa.txt文件 就变成了桌面/文件夹a/aaa.txt
  3. 如图所示, 以下示例均以图片中的描述来进行展示, 所有示例均需要根据图片进行参考
    在这里插入图片描述

  4. 相对路径示例:

    1. 上图中如果当前文件夹为文件夹a, 文件a.txt的相对路径就是 ./a.txt

      • 当前文件夹的路径为: 桌面/文件夹a
      • 如果在当前文件夹中的文件相对路径 ./ 可写可不写
      • 此例子也可以写为 a.txt
    2. 上图中如果当前文件夹为文件夹a, 文件夹b的相对路径就是 ../文件夹b

      • 当前文件夹的路径为: 桌面/文件夹a
      • 如果要找到文件夹b中的b.py, 则相对路径就是 ../文件夹b/b.py
      • 解释: ../表示上一级文件夹, b.py是文件夹b中的文件 因为通过上图可以看到文件夹a和文件夹b属于同一级目录(桌面)
      • 注意: 此时的../就不能省略了 可以省略./只针对当前文件夹中的文件
    3. 如果在当前文件夹为文件夹a, 文件夹b中的子文件夹b的相对路径就是 ../文件夹b/子文件夹b

      • 当前文件夹的路径为:桌面/文件夹a
      • 解释: ../表示上一级文件夹, 文件夹b与文件夹a是同级文件夹, 子文件夹b是文件夹b的子文件夹
      • 注意: 此时的../就不能省略了 可以省略./只针对当前文件夹中的文件
    4. 如果在当前文件夹为文件夹a, 文件夹c中的子文件夹c中的孙子文件c.txt的相对路径就是 ../文件夹c/子文件夹c/孙子文件c.txt

      • 当前文件夹的路径为: 桌面/文件夹a
      • 解释: ../表示上一级文件夹, 文件夹c与文件夹a是同级文件夹, 子文件夹c是文件夹c的子文件夹, 孙子文件c.txt是子文件夹c中的文件
      • 注意: 此时的../就不能省略了 可以省略./只针对当前文件夹中的文件
    5. 如果在当前文件夹为文件夹a, 文件夹d中的子文件夹d中的孙子文件d2.py的相对路径就是 ../文件夹d/子文件夹d/孙子文件d2.py

      • 当前文件夹的路径为: 桌面/文件夹a
      • 解释: ../表示上一级文件夹, 文件夹d与文件夹a是同级文件夹, 子文件夹d是文件夹d的子文件夹, 孙子文件d2.py是子文件夹d的子文件
      • 注意: 此时的../就不能省略了 可以省略./只针对当前文件夹中的文件
    6. 如果当前文件夹为文件夹d中的子文件夹ddd,那么文件夹b中的子文件夹b的相对路径就是../../文件夹b/子文件夹b

      • 当前文件夹的路径为:桌面/文件夹d/子文件夹ddd
      • 解释:
        1. ../表示上一级文件夹 就变成了: 桌面/文件夹d
        2. ../../表示上一级的上一级文件夹 就变成了: 桌面
        3. ../../文件夹b/子文件夹b就表示退到上上级文件夹,然后进入文件夹b中的子文件夹b
      • 注意: 此时的../就不能省略了 可以省略./只针对当前文件夹中的文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值