9.1 Python 中的绝对路径和相对路径
包含在主题中
#Python基础知识
第9 章文件读写操作9.1 Python 中的绝对路径和相对路径9.1.1 准备步骤1:比较以下创建新文件和文件夹的图示。
1_file1 在桌面上创建一个新文件夹并将其命名为file。
2. 在文件夹中创建两个新文件夹,并将它们命名为a_file 和b_file。
3、在你的文件夹中新建一个txt文件,命名为xxx.txt,在xxx.txt文件中写入“努力学习,天天进步!”。
4、在a_file文件夹下新建txt文件,命名为aaa.txt,在aaa.txt文件中写入:“恭喜,文件读取成功!”
5. 在b_file文件夹内创建一个新的c_file文件夹,在c_file文件夹内创建一个ccc.txt文档,并在该文档内写入“Today is Saturday!”。
6、在b_file文件夹下新建一个txt文件,命名为bbb.txt,在bbb.txt文件中写入“今天下雨了!”。
7. 在b_file文件夹中创建一个新的b.py文件。
步骤2:在vscode中打开b_file文件夹。
请注意,b_file 文件夹只能使用相对路径打开。否则下面的代码会报错。
但是,如果使用绝对路径打开文件,则可以不受限制地打开该文件夹。
9.1.2 绝对路径1. 什么是绝对路径?
当Python读取文件时,它首先需要知道文件的路径,或者说它存储在哪里。
就像手动打开文件一样,您首先需要知道文件在C 或D 驱动器上保存的具体位置。
Python 中有两种表示文档路径的方法:
第一个是绝对路径。它以驱动器号(c 盘、d 盘)开头,以文件的具体位置结尾。
绝对路径是硬盘驱动器上文件或文件夹的完整路径。
在Windows 系统上,绝对路径以磁盘名称(例如C: 或D:)开头,并以特定文件或文件夹名称结尾。
示例:xxx.txt文件的绝对路径为:
‘C:\Users\xiaoyuzhou\Desktop\Files\xxx.
TXT’ 。
绝对路径是唯一的,并且只存在一个。
2、绝对路径的显示有两种方式
方法一:点击文件上方的搜索栏。
2_点击搜索栏方法二:用鼠标点击xxx.txt文件,按住Shift并右键单击鼠标,最后点击复制文件地址。
3_复制文件地址3.用绝对路径打开文件
首先,打开b.py文件,并在b.py文件中输入以下代码。
使用绝对路径打开文件,而不限制打开哪些文件夹。
#以绝对路径打开xxx.txt
txt=打开(
‘C:\\用户\\小宇舟\\桌面\\文件\\xxx.txt’,
编码=’utf-8′)
打印(txt.read())
[终端输出]
努力学习,每天成长!
我在代码中添加了换行符,因为图像没有完全显示。书写时无需使用换行符。
4. 代码分析
open 是一个用于打开文件的内置Python 函数。该函数有两个参数。
第一个参数为文件的绝对路径:C:\Users\xiaoyuzhou\Desktop\file\xxx.txt’;
第二个参数是文件的编码格式。编码=’utf-8′;
read 也是一个内置的Python 函数,它读取整个文件并将读取的文件内容保存到字符串变量中。
稍后我们将更详细地解释open 函数,但现在我们先了解一下它。
5、注意:如果要改写绝对路径,请添加\。
xxx.txt文件的绝对路径原来是:
‘C:\Users\xiaoyuzhou\Desktop\Files\xxx.txt’
open参数中写入的xxx.txt文件的绝对路径如下。
‘C:\\用户\\小宇舟\\桌面\\文件\\xxx.txt’
对比这两个路径,发现我把绝对路径中的单个反斜杠改写成了两个反斜杠,放到了参数中。
为什么写成双反斜杠呢?
这是因为Python 有转义字符的语法,并且[\]+ 字符允许您实现特殊功能。
4_转义字符上面的代码中,如果不加双反斜杠,\f会被ptyhon当作转义符号,程序会报类似下面代码的错误。
#如果使用单个反斜杠,\f将被视为转义字符,程序会报错
txt=打开(
‘C:\Users\xiaoyuzhou\Desktop\Files\xxx.txt’,
编码=’utf-8′)
打印(txt.read())
[程序错误]
SyntaxError:(Unicode 错误)’unicodeescape’ 编解码器
无法解码位置2-3: 中的字节
截断\UXXXXXXXX 转义
9.1.3 相对路径1. 什么是绝对路径?
“相对路径”描述了基于作为参考目标的“当前文件夹”的文件路径的格式。
相对路径由.\\ 或.\\ 表示。
点.\\ 代表文件或文件夹所在的当前目录。
两个点.\\代表当前目录之上的目录。
要增加n级,用n .\\来表示。
2. 任务1:打开位于b.py 中同一文件夹中的文件bbb.txt。
首先,打开vscode中的b_file文件夹。
接下来,打开b.py 文件。
注意:b_file 文件夹只能使用相对路径打开。否则下面的代码会报错。
手动操作:要打开b.py文件下的bbb.txt文件,直接点击bbb.txt文件即可。
5_file 有人观察了上面的文件流程图,发现b.py和bbb.txt位于同一位置,即在同一文件夹中。
绝对路径中的点.\\表示文件或文件夹所在的当前目录。
bbb.txt到b.py的相对路径是.\\bbb.txt或bbb.txt。
因为.\\可以省略。
请注意,路径参数需要.txt 后缀。
2.1 省略同文件夹中的绝对路径点:bbb.txt
#打开b.py同文件夹下的文件:bbb.txt
txt=open(‘bbb.txt’,编码=’utf-8′)
打印(txt.read())
[终端输出]
今天下雨了!
2.2 同文件夹的绝对路径:不要省略.\bbb.txt中的点。
#打开b.py同文件夹下的文件:bbb.txt
txt=open(‘.\\bbb.txt’, 编码=’utf-8′)
打印(txt.read())
[终端输出]
今天下雨了!
3、任务2:打开b.py中的下一级文件ccc.txt。
6_下属文件如果观察上面的文件流程图,可以看到ccc.txt位于b.py的子目录中。
与b.py 同一级别的是c_file 文件夹。
ccc.txt到b.py的相对路径是.\\c_file\\ccc.txt或c_file\\ccc.txt。
.\\ 是可选的。
请注意,路径参数需要.txt 后缀。
手动操作:现在打开b.py文件。要在打开b.py文件时同时打开ccc.txt,请先打开c_file,然后再打开ccc.txt文档。 (只要按照手动打开方法谁都能明白)
忽略。 \
#打开b.py中的下一级文件ccc.txt。
txt=open(‘c_file\\ccc.txt’,编码=’utf-8′)
打印(txt.read())
[终端输出]
今天是星期六!
不要省略它。 \
#打开b.py中的下一级文件ccc.txt。
txt=open(‘.\\c_file\\ccc.txt’,encoding=’utf-8′)
打印(txt.read())
[终端输出]
今天是星期六!
4.任务3:打开b.py的父文件:aaa.txt。
7_Top Files 观察上面的文件流程图,可以看到aaa.txt位于b.py上面的目录中。
两个点.\\代表当前目录之上的目录。
aaa.txt相对于b.py的相对路径是.\\a_file\\aaa.txt。
手动操作:打开b.py文件。文件所在目录是b_file文件夹。要打开aaa.txt,请返回上一步,找到a_file 文件夹,然后单击aaa.txt。
要将文件夹上移(后移)一次,请使用1.\\.
.\ 不能省略。
#任务3:打开b.py 上一级的文件aaa.txt。
txt=open(‘.\\a_file\\aaa.txt’, 编码=’utf-8′)
打印(txt.read())
[终端输出]
恭喜。文件读取成功。
4.任务4:打开b.py的最上面两层:描述document.txt
准备工作:在电脑桌面上新建一个【Python Notes New】文件夹,在其中新建一个【第九章文件的读写】文件夹,在其中新建一个【文件路径】文件夹,并在其中创建一个【相对创建一个新路径。在该文件夹中创建一个新的[如何解释.txt] 文档,并输入以下内容:“为每个文件夹级别使用多个.\。”
描述method.txt文档的绝对路径为:
‘C:\Users\xiaoyuzhou\Desktop\Python笔记新建\第九章读写文件\文件路径\相对路径\描述方法.txt’
b.py文件的绝对路径为:
‘C:\Users\xiaoyuzhou\Desktop\file\b_file\b.py’
观察上面的两个绝对路径,我们发现两个文档的绝对路径有相同的部分。即两者都在C:\Users\xiaoyuzhou\Desktop下。
手动操作:打开b.py文件时,b.py文件所在目录为b_file文件夹。要打开描述模式.txt,请先返回两次。
第一次:返回您的文件夹。第二次:返回桌面。接下来,在桌面上打开一个新的Python Notes 文件夹并循环浏览文件,直到找到名为method.txt 的说明文档。
由于我们在操作的过程中返回了两次,所以表达时需要使用两次.\\。
.\\用于表示回滚次数。
txt=打开(
‘.\\.\\
Python笔记新建\第九章读写文件\文件路径\相对路径\描述方法.txt’,
编码=’utf-8′)
打印(txt.read())
[终端输出]
当您向上移动几层文件夹时,请使用一些.\\。
9.1.4 如何编写相对路径一开始我对相对路径理解有些困难,但经过查阅资料和请教朋友后,我得出以下结论:这个不一定准确,所以仅供参考。
我个人对写相对路径的理解是用.\\或.\\来代替两个文件绝对路径的公共部分。
.\ 表是向上的文件夹。上几层楼并使用一些.\\.
.\ 表示文件在同一层或以下。
#b.pyxxx.txt 文件的绝对路径是:
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\b.py’
#’C:\User\xiaoyuzhou\Desktop\File\xxx.txt’
#xxx.txt 高于b.py
txt=open(‘.\\xxx.txt’,编码=’utf-8′)
打印(txt.read())
[终端输出]
努力学习,每天成长!
#b.pyaaa.txt 文件的绝对路径是:
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\b.py’
#’C:\Users\xiaoyuzhou\Desktop\file\a_file\aaa.txt’
#aaa.txt 位于b.py 之上
txt=open(‘.\\a_file\\aaa.txt’, 编码=’utf-8′)
打印(txt.read())
[终端输出]
恭喜。文件读取成功。
#b.pybbb.txt 文件的绝对路径是:
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\b.py’
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\bbb.txt’
#bbb.txt 与b.py 处于同一级别
txt=open(‘bbb.txt’,编码=’utf-8′)
打印(txt.read())
[终端输出]
今天下雨了!
#b.pyccc.txt 文件的绝对路径
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\b.py’
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\c_file\ccc.txt’
#ccc.txt 比b.py 低一级
txt=open(‘c_file\\ccc.txt’,编码=’utf-8′)
打印(txt.read())
[终端输出]
今天是星期六!
#b.py.txt文件的绝对路径怎么写
#’C:\Users\xiaoyuzhou\Desktop\file\b_file\b.py’
#’C:\Users\xiaoyu Zhou\Desktop\Python Notes New\第九章读写文件\文件路径\相对路径\描述方法.txt’
#b.py2 上楼你会到达一个公共桌面
txt=打开(
‘.\\.\\Python笔记New\第9章读写文件\文件路径\相对路径\描述方法.txt’,encoding=’utf-8′)
打印(txt.read())
[终端输出]
将文件夹提升几级时,请使用一些.\\。
9.1.5 相对路径的作用如果您与其他人共享您的代码,当代码中使用绝对路径时,每个人通常都会有不同的用户名,因此每个人都必须对代码进行更改。该路径现在应该可以正常工作。
但是,如果我将其与文件一起复制并使用相对路径表达式,则它可以正常运行,无需任何更改。
通常,相对路径用于保存在一起的文档,但即使两个文档跨越较大的层,也会使用绝对路径。
9.1.6 小结8_绝对路径和相对路径