0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

什么是Python的相对路径

汽车电子技术 来源:安迪python学习笔记 作者:安迪python学习笔记 2023-02-23 10:11 次阅读
    1. 知识回顾
    1. 什么是相对路径
    1. 相对路径的语法
    1. 查看相对路径的方法
    1. 写出所有txt文件的相对路径
    • 5.1 同目录
    • 5.2 上级目录
    1. 用相对路径读取txt文件
    • 6.1 读取旅游.txt
    • 6.2 读取旅游经费.txt
    • 6.3 读取笔记.txt和new.txt
    • 6.4 读取目标.txt文件
    1. 上2级目录
    • 7.1 同级目录
    • 7.2 上级目录
    • 7.3 上2级目录
    • 7.4 有分支的上级目录
    1. 总结

1. 知识回顾

绝对路径是指文件在硬盘上真正存在的路径。

就是从盘符(C盘、D盘、E盘、F盘)开始一直到文件所在的具体位置。

绝对路径 = 邮寄地址

绝对路径就相当于生活中的邮寄地址,邮寄地址总是从省份开头,然后到市县、到街区再到具体门牌号。

武汉大学的地址是:湖北省武汉市武昌区八一路299号。这就是一个绝对路径,通常是邮寄东西才会用的地址。

2. 什么是相对路径

相对路径 = 打车地址

相对路径的相对,顾名思义就是相对某个参考对象而言的。

假设你本人已经在武汉市,你打车的时候你会跟司机说去武汉大学,或者说是去武昌区八一路。

你肯定不会跟司机说去湖北省武汉市某某地方,省份和市通常是被你省略了。

Python中的相对路径基本等同于打车地址这一概念。

相对路径是针对当前文件夹这一参考对象,来描述文件路径的形式。

当前文件夹是指我们编程使用的编辑器打开的文件夹。

【温馨提示】

我刚开始接触相对路径的时候,总是以打开的py文件为参考对象,相对路径总是报错。

后来琢磨了下,才发现,当前文件夹不是指py文件所在的文件夹,是指编辑器打开的文件夹。

3. 相对路径的语法

相对路径使用两个特殊符号表示:点(.) 和双点(..)。

一个点. 表示文件或文件夹所在的当前目录。

两个点.. 表示当前目录的上一级目录。

上n级就用n个.. 表示。

找相对路径的重点在于找到编辑器打开的文件夹。

4. 查看相对路径的方法

我用的是vscode编辑器,相对路径的参考对象就是我的编辑器打开的文件夹。

现在,我用vscode打开名为生活的文件夹。

图片

68-1打开文件夹

选择生活文件夹。

图片

68-2生活

这一步很重要,vscode打开的文件夹不同,则相对路径就不同。

  1. 单击vscode编辑器左上角的资源管理器,下面会出现一个当前文件夹的文件目录;
  2. 鼠标右键点击旅游.txt文件;
  3. 点击复制相对路径,就能得到旅游.txt文件的相对路径,如下所示:
旅游.txt

图片

68-3复制相对路径

【备注】

在当前文件夹下,vscode省略了.\\,所有才得到了上面的相对路径。

.\\是可以省略的。

.\\要不要程序都不会报错,大家根据自己的习惯编写即可。

旅游.txt文件的相对路径完整的表述如下所示:

.\\旅游.txt

【语法解析】

.\\表示当前文件夹,即.\\指代生活文件夹。

同样的方法,查看旅游经费.txt的相对路径,如下所示:

年度预算\\旅游经费.txt

旅游经费.txt文件的相对路径完整的表述如下所示:

.\\年度预算\\旅游经费.txt

5. 写出所有txt文件的相对路径

【准备工作】

年度预算文件夹里新建一个绝对.py文件。

【写相对路径】

当前我打开的文件夹为生活,即当前目录为生活

那我们要编辑的所有文件的相对路径就是相对于生活文件夹来确定的。

图片

68-4当前文件夹

5.1 同目录

旅游.txt和旅游经费.txt文件都在生活文件里,即在当前目录下,相对路径用.\\表示:

旅游.txt的相对路径为:.\\旅游.txt

旅游经费.txt的相对路径为.\\年度预算\\旅游经费.txt

5.2 上级目录

笔记.txt和new.txt在安迪文件夹中,安迪文件夹是生活文件的上一级,是上层目录,相对路径用..\\表示:

笔记.txt的相对路径为..\\笔记.txt

new.txt的相对路径为..\\\\new.txt

目标.txt文件在安迪文件夹下的工作文件夹里,安迪文件夹同样是上层目录,相对路径同样用..\\表示:

目标.txt的相对路径为:..\\工作\\目标.txt

6. 用相对路径读取txt文件

6.1 读取旅游.txt

在绝对路径中,一个点. 表示文件所在的当前目录。

当前我打开的文件夹为生活,即当前目录为生活

旅游.txt就在当前生活文件夹,因此相对路径为.\\旅游.txt

读取旅游.txt代码如下:

txt = open ('.\\旅游.txt',encoding='utf-8')
print(txt.read())

【终端输出】

我想去西藏!

在当前文件夹下,.\\可以省略:

txt = open ('旅游.txt',encoding='utf-8')
print(txt.read())

【终端输出】

我想去西藏!

6.2 读取旅游经费.txt

当前我打开的文件夹为生活,即当前目录为生活

旅游经费.txt在当前生活文件夹里的年度预算文件夹里,因此相对路径为.\\年度预算\\旅游经费.txt

读取旅游经费.txt代码如下:

txt = open ('.\\年度预算\\旅游经费.txt',encoding='utf-8')
print(txt.read())

【终端输出】

旅游经费2万元。

在当前文件夹下,.\\可以省略:

txt = open ('年度预算\\旅游经费.txt',encoding='utf-8')
print(txt.read())

【终端输出】

旅游经费2万元。

6.3 读取笔记.txt和new.txt

笔记.txt和new.txt在安迪文件夹中,安迪文件夹是生活文件的上一级,是上层目录,相对路径用..\\表示:

笔记.txt的相对路径为..\\笔记.txt

txt = open ('..\\笔记.txt',encoding='utf-8')
print(txt.read())

【终端输出】

这是我的第300篇笔记!

读取new.txt

txt = open ('..\\\\new.txt',encoding='utf-8')
print(txt.read())

【终端输出】

路径里含有转义字符,程序会报错!

\\n会被认为成转义字符,要多加一个反斜杠\\,即为\\\\

6.4 读取目标.txt文件

目标.txt文件在安迪文件夹下的工作文件夹里,安迪文件夹同样是上层目录,相对路径同样用..\\表示:

目标.txt的相对路径为:..\\工作\\目标.txt

txt = open ('..\\工作\\目标.txt',encoding='utf-8')
print(txt.read())

【终端输出】

2023年的目标是新增1万个关注者!

这里的..\\指代安迪文件夹。

7. 上2级目录

刚才我们的编辑器打开的是生活文件夹,我们是在路径.py中编写代码。

我们现在更换打开的文件夹。

用vscode编辑器打开年度预算文件夹,在绝对.py文件中编写代码。注意观察相对路径的变化。

图片

68-5年度预算

7.1 同级目录

旅游经费.txt和年度预算在同一个文件夹里,属于统计目录,用.\\表示:

txt = open ('.\\旅游经费.txt',encoding='utf-8')
print(txt.read())

【终端输出】

旅游经费2万元。

7.2 上级目录

旅游.txt文件是在生活文件夹里,相对于年度预算文件夹,是上级目录,用..\\表示:

txt = open ('..\\旅游.txt',encoding='utf-8')
print(txt.read())

【终端输出】

我想去西藏!

7.3 上2级目录

笔记.txt和new.txt相对于年度预算文件夹而言,在上级文件夹生活的上级文件夹安迪里,我称为上2级目录,上2级目录,用两个..\\表示:

txt = open ('..\\..\\笔记.txt',encoding='utf-8')
print(txt.read())

【终端输出】

这是我的第300篇笔记!

\\n会被程序默认为转义字符,记得多加一个反斜杠\\,即改写为\\\\

txt = open ('..\\..\\\\new.txt',encoding='utf-8')
print(txt.read())

【终端输出】

路径里含有转义字符,程序会报错!

7.4 有分支的上级目录

目标.txt文件夹是在年度预算文件夹的上2级目录下的工作文件夹,我把这种情况称为有分支,有分支的情况下多添加一个分支的文件夹名即可。

txt = open ('..\\..\\工作\\目标.txt',encoding='utf-8')
print(txt.read())

【终端输出】

2023年的目标是新增1万个关注者!

8. 总结

.\\表示当前目录,指的是当前文件夹,打开的是生活文件夹,.\\就代表生活;打开的是年度预算文件夹,.\\就代表年度预算

..\\表示上一级目录,以打开年度预算文件夹为例,..\\就表示年度预算文件夹的上级文件夹生活

..\\..\\表示上2级目录,以打开年度预算文件夹为例,第1个..\\代表的是上2级的文件夹安迪,第2个..\\代表的上级文件夹生活

【错误提示】

txt = open ('..\\生活\\旅游.txt',encoding='utf-8')
print(txt.read())

这是部分初学者会犯的错误。

初学者认为..\\表示上一级,然后再写上级目录的文件夹名称生活

上述代码错误的地方在于多添加了\\生活

大家注意,..\\就已经指代了生活文件夹,只有有分支的情况下,才会写文夹名称。

大家可以理解成直系亲属是直接用..就能指代的。

只有旁系亲属才需要写文件夹名称

相对路径的概念初学者会有点迷茫,但使用vscode的同学可以直接查看,多试几次就明白了。

相对路径的概念很重要,当爬虫的时候通常要保存的文件都使用相对路径,你不理解相对路径,可能就找不到你爬到的文件了哦!图片

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 文件
    +关注

    关注

    1

    文章

    561

    浏览量

    24695
  • 形式
    +关注

    关注

    0

    文章

    2

    浏览量

    7559
  • python
    +关注

    关注

    56

    文章

    4782

    浏览量

    84450
收藏 人收藏

    评论

    相关推荐

    Linux中的相对路径和绝对路径就是这么简单

    对路径名和相对路径名是在 Linux 上指定目录或文件的虚拟地址的两种方式。那么这两种路径类型之间有什么区别,您应该在命令中使用哪一种?现在就让我们一起来看看吧。
    发表于 11-25 09:07 2082次阅读

    Python相对路径转化为绝对路径

    编程语言python
    小凡
    发布于 :2022年09月09日 12:04:29

    相对路径

    请问有没有大虾有关于相对路径的资料,如果有的话否上传共享下。
    发表于 07-19 10:10

    labview基路径相对路径

    各位大神,请教一下基路径相对路径是什么概念啊?
    发表于 07-23 11:08

    使用udl连接相对路径的数据库,报错

    使用udl连接相对路径数据库,数据库和udl放在同一个文件夹,写入数据时候报错,提示路径不对,怎么解决?udl内容如下:[oledb]; Everything after this line
    发表于 08-13 23:51

    【新手求带】labview在创建路径时,使用时间日期作为相对路径,总是找不到路径时怎么回事?

    【新手求带】labview在创建路径时,使用时间日期作为相对路径,总是找不到路径时怎么回事?谢各路大神帮忙解答!!!
    发表于 04-25 15:28

    求助labview中创建路径函数的名称或相对路径怎么设置

    labview中创建路径函数的名称或相对路径怎么设置
    发表于 09-22 08:50

    请教关于Labview生成exe后的文件路径问题

    在Labview里用了写入测量文件并保存到一个文件夹下,下面会继续调用该测量文件。生成exe之前可以,但是生成exe后在别人电脑上就不行了。生成的测量文件并没有保存到指定位置。看到有帖子说是相对路径的问题,那这个测量文件的路径怎么改成
    发表于 08-01 10:31

    请教关于CCS4 链接文件设置相对路径问题

    CCS4的相对路径
    发表于 08-07 06:01

    请问通过ccs6.0怎么设置文件的相对路径

    TI工程师们:你好!请问通过ccs6.0怎么设置文件的相对路径?就是无论怎么移动工程,编译后都不会报错。 谢谢!
    发表于 09-14 11:38

    编译器配置不允许使用相对路径

    我最近遇到了一个问题,当我试图与一个同事共享一个项目时,我认为如果我能把这个特性添加到创建者的下一个版本中,那么它可能是容易解决的。特别是“附加包含目录”编译器配置并在当前不允许被使用相对路径。我
    发表于 03-08 12:00

    LabVIEW绝对路径相对路径

    路径方式有两种,相对路径和绝对路径,由于移植性原因,建议使用相对路径,但相对路径在开发环境与运行环境下的
    发表于 07-12 10:03

    调用dll的vi在拷到别的电脑后,dll的绝对路径发生变化了,怎么让vi自动找到dll文件

    拷过来后,vi无法运行,因为找不到dll文件,调用库节点里面的dll路径还是原来的,而实际dll文件的路径肯定已经变了,但dll与vi的相对路径没有变化,如何让vi自动找到dll,而不需要每次手动重新选择
    发表于 12-23 11:54

    keil软件报错,添加的.h文件找不到其相对路径

    ..\\\\User\\\\LED\\\\bsd_led.c(2): error:#5: cannot open source input file \"./led1/bsp_led.h\": No such file or directory添加的.h文件找不到其相对路径
    发表于 10-14 14:56

    按日期保存(相对路径).vi

    相对路径保存当前文档,并且以日期的形式保存
    发表于 07-20 10:21 4次下载