-
- 知識(shí)回顧
-
- 什么是相對(duì)路徑
-
- 相對(duì)路徑的語法
-
- 查看相對(duì)路徑的方法
-
- 寫出所有txt文件的相對(duì)路徑
- 5.1 同目錄
- 5.2 上級(jí)目錄
-
- 用相對(duì)路徑讀取txt文件
- 6.1 讀取旅游.txt
- 6.2 讀取旅游經(jīng)費(fèi).txt
- 6.3 讀取筆記.txt和new.txt
- 6.4 讀取目標(biāo).txt文件
-
- 上2級(jí)目錄
- 7.1 同級(jí)目錄
- 7.2 上級(jí)目錄
- 7.3 上2級(jí)目錄
- 7.4 有分支的上級(jí)目錄
-
- 總結(jié)
1. 知識(shí)回顧
絕對(duì)路徑是指文件在硬盤上真正存在的路徑。
就是從盤符(C盤、D盤、E盤、F盤)開始一直到文件所在的具體位置。
絕對(duì)路徑 = 郵寄地址
絕對(duì)路徑就相當(dāng)于生活中的郵寄地址,郵寄地址總是從省份開頭,然后到市縣、到街區(qū)再到具體門牌號(hào)。
武漢大學(xué)的地址是:湖北省武漢市武昌區(qū)八一路299號(hào)
。這就是一個(gè)絕對(duì)路徑,通常是郵寄東西才會(huì)用的地址。
2. 什么是相對(duì)路徑
相對(duì)路徑 = 打車地址
相對(duì)路徑的相對(duì),顧名思義就是相對(duì)某個(gè)參考對(duì)象而言的。
假設(shè)你本人已經(jīng)在武漢市,你打車的時(shí)候你會(huì)跟司機(jī)說去武漢大學(xué),或者說是去武昌區(qū)八一路。
你肯定不會(huì)跟司機(jī)說去湖北省武漢市某某地方,省份和市通常是被你省略了。
Python中的相對(duì)路徑基本等同于打車地址這一概念。
相對(duì)路徑是針對(duì)當(dāng)前文件夾這一參考對(duì)象,來描述文件路徑的形式。
當(dāng)前文件夾是指我們編程使用的編輯器打開的文件夾。
【溫馨提示】
我剛開始接觸相對(duì)路徑的時(shí)候,總是以打開的py文件為參考對(duì)象,相對(duì)路徑總是報(bào)錯(cuò)。
后來琢磨了下,才發(fā)現(xiàn),當(dāng)前文件夾不是指py文件所在的文件夾,是指編輯器打開的文件夾。
3. 相對(duì)路徑的語法
相對(duì)路徑使用兩個(gè)特殊符號(hào)表示:點(diǎn)(.) 和雙點(diǎn)(..)。
一個(gè)點(diǎn). 表示文件或文件夾所在的當(dāng)前目錄。
兩個(gè)點(diǎn).. 表示當(dāng)前目錄的上一級(jí)目錄。
上n級(jí)就用n個(gè).. 表示。
找相對(duì)路徑的重點(diǎn)在于找到編輯器打開的文件夾。
4. 查看相對(duì)路徑的方法
我用的是vscode編輯器,相對(duì)路徑的參考對(duì)象就是我的編輯器打開的文件夾。
現(xiàn)在,我用vscode打開名為生活
的文件夾。
68-1打開文件夾
選擇生活
文件夾。
68-2生活
這一步很重要,vscode打開的文件夾不同,則相對(duì)路徑就不同。
- 單擊vscode編輯器左上角的
資源管理器
,下面會(huì)出現(xiàn)一個(gè)當(dāng)前文件夾的文件目錄; - 鼠標(biāo)右鍵點(diǎn)擊
旅游.txt
文件; - 點(diǎn)擊
復(fù)制相對(duì)路徑
,就能得到旅游.txt
文件的相對(duì)路徑,如下所示:
旅游.txt
68-3復(fù)制相對(duì)路徑
【備注】
在當(dāng)前文件夾下,vscode省略了.\\
,所有才得到了上面的相對(duì)路徑。
.\\
是可以省略的。
.\\
要不要程序都不會(huì)報(bào)錯(cuò),大家根據(jù)自己的習(xí)慣編寫即可。
旅游.txt
文件的相對(duì)路徑完整的表述如下所示:
.\\旅游.txt
【語法解析】
.\\
表示當(dāng)前文件夾,即.\\
指代生活
文件夾。
同樣的方法,查看旅游經(jīng)費(fèi).txt
的相對(duì)路徑,如下所示:
年度預(yù)算\\旅游經(jīng)費(fèi).txt
旅游經(jīng)費(fèi).txt
文件的相對(duì)路徑完整的表述如下所示:
.\\年度預(yù)算\\旅游經(jīng)費(fèi).txt
5. 寫出所有txt文件的相對(duì)路徑
【準(zhǔn)備工作】
在年度預(yù)算
文件夾里新建一個(gè)絕對(duì).py
文件。
【寫相對(duì)路徑】
當(dāng)前我打開的文件夾為生活
,即當(dāng)前目錄為生活
。
那我們要編輯的所有文件的相對(duì)路徑就是相對(duì)于生活
文件夾來確定的。
68-4當(dāng)前文件夾
5.1 同目錄
旅游.txt和旅游經(jīng)費(fèi).txt文件都在生活文件里,即在當(dāng)前目錄下,相對(duì)路徑用.\\
表示:
旅游.txt的相對(duì)路徑為:.\\旅游.txt
旅游經(jīng)費(fèi).txt的相對(duì)路徑為.\\年度預(yù)算\\旅游經(jīng)費(fèi).txt
5.2 上級(jí)目錄
筆記.txt和new.txt在安迪
文件夾中,安迪文件夾是生活
文件的上一級(jí),是上層目錄,相對(duì)路徑用..\\
表示:
筆記.txt的相對(duì)路徑為..\\筆記.txt
new.txt的相對(duì)路徑為..\\\\new.txt
目標(biāo).txt文件在安迪
文件夾下的工作
文件夾里,安迪
文件夾同樣是上層目錄,相對(duì)路徑同樣用..\\
表示:
目標(biāo).txt的相對(duì)路徑為:..\\工作\\目標(biāo).txt
6. 用相對(duì)路徑讀取txt文件
6.1 讀取旅游.txt
在絕對(duì)路徑中,一個(gè)點(diǎn).
表示文件所在的當(dāng)前目錄。
當(dāng)前我打開的文件夾為生活
,即當(dāng)前目錄為生活
。
旅游.txt
就在當(dāng)前生活
文件夾,因此相對(duì)路徑為.\\旅游.txt
。
讀取旅游.txt
代碼如下:
txt = open ('.\\旅游.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
我想去西藏!
在當(dāng)前文件夾下,.\\
可以省略:
txt = open ('旅游.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
我想去西藏!
6.2 讀取旅游經(jīng)費(fèi).txt
當(dāng)前我打開的文件夾為生活
,即當(dāng)前目錄為生活
。
旅游經(jīng)費(fèi).txt
在當(dāng)前生活
文件夾里的年度預(yù)算
文件夾里,因此相對(duì)路徑為.\\年度預(yù)算\\旅游經(jīng)費(fèi).txt
。
讀取旅游經(jīng)費(fèi).txt
代碼如下:
txt = open ('.\\年度預(yù)算\\旅游經(jīng)費(fèi).txt',encoding='utf-8')
print(txt.read())
【終端輸出】
旅游經(jīng)費(fèi)2萬元。
在當(dāng)前文件夾下,.\\
可以省略:
txt = open ('年度預(yù)算\\旅游經(jīng)費(fèi).txt',encoding='utf-8')
print(txt.read())
【終端輸出】
旅游經(jīng)費(fèi)2萬元。
6.3 讀取筆記.txt和new.txt
筆記.txt和new.txt在安迪
文件夾中,安迪文件夾是生活
文件的上一級(jí),是上層目錄,相對(duì)路徑用..\\
表示:
筆記.txt的相對(duì)路徑為..\\筆記.txt
txt = open ('..\\筆記.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
這是我的第300篇筆記!
讀取new.txt
txt = open ('..\\\\new.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
路徑里含有轉(zhuǎn)義字符,程序會(huì)報(bào)錯(cuò)!
\\n
會(huì)被認(rèn)為成轉(zhuǎn)義字符,要多加一個(gè)反斜杠\\
,即為\\\\
。
6.4 讀取目標(biāo).txt文件
目標(biāo).txt文件在安迪
文件夾下的工作
文件夾里,安迪
文件夾同樣是上層目錄,相對(duì)路徑同樣用..\\
表示:
目標(biāo).txt的相對(duì)路徑為:..\\工作\\目標(biāo).txt
txt = open ('..\\工作\\目標(biāo).txt',encoding='utf-8')
print(txt.read())
【終端輸出】
2023年的目標(biāo)是新增1萬個(gè)關(guān)注者!
這里的..\\
指代安迪文件夾。
7. 上2級(jí)目錄
剛才我們的編輯器打開的是生活
文件夾,我們是在路徑.py
中編寫代碼。
我們現(xiàn)在更換打開的文件夾。
用vscode編輯器打開年度預(yù)算
文件夾,在絕對(duì).py
文件中編寫代碼。注意觀察相對(duì)路徑的變化。
68-5年度預(yù)算
7.1 同級(jí)目錄
旅游經(jīng)費(fèi).txt和年度預(yù)算在同一個(gè)文件夾里,屬于統(tǒng)計(jì)目錄,用.\\
表示:
txt = open ('.\\旅游經(jīng)費(fèi).txt',encoding='utf-8')
print(txt.read())
【終端輸出】
旅游經(jīng)費(fèi)2萬元。
7.2 上級(jí)目錄
旅游.txt文件是在生活
文件夾里,相對(duì)于年度預(yù)算
文件夾,是上級(jí)目錄,用..\\
表示:
txt = open ('..\\旅游.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
我想去西藏!
7.3 上2級(jí)目錄
筆記.txt和new.txt相對(duì)于年度預(yù)算
文件夾而言,在上級(jí)文件夾生活
的上級(jí)文件夾安迪
里,我稱為上2級(jí)目錄,上2級(jí)目錄,用兩個(gè)..\\
表示:
txt = open ('..\\..\\筆記.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
這是我的第300篇筆記!
\\n會(huì)被程序默認(rèn)為轉(zhuǎn)義字符,記得多加一個(gè)反斜杠\\
,即改寫為\\\\
txt = open ('..\\..\\\\new.txt',encoding='utf-8')
print(txt.read())
【終端輸出】
路徑里含有轉(zhuǎn)義字符,程序會(huì)報(bào)錯(cuò)!
7.4 有分支的上級(jí)目錄
目標(biāo).txt文件夾是在年度預(yù)算
文件夾的上2級(jí)目錄下的工作
文件夾,我把這種情況稱為有分支,有分支的情況下多添加一個(gè)分支的文件夾名即可。
txt = open ('..\\..\\工作\\目標(biāo).txt',encoding='utf-8')
print(txt.read())
【終端輸出】
2023年的目標(biāo)是新增1萬個(gè)關(guān)注者!
8. 總結(jié)
.\\
表示當(dāng)前目錄,指的是當(dāng)前文件夾,打開的是生活文件夾,.\\
就代表生活
;打開的是年度預(yù)算
文件夾,.\\
就代表年度預(yù)算
。
..\\
表示上一級(jí)目錄,以打開年度預(yù)算
文件夾為例,..\\
就表示年度預(yù)算文件夾的上級(jí)文件夾生活
。
..\\..\\
表示上2級(jí)目錄,以打開年度預(yù)算
文件夾為例,第1個(gè)..\\
代表的是上2級(jí)的文件夾安迪
,第2個(gè)..\\
代表的上級(jí)文件夾生活
。
【錯(cuò)誤提示】
txt = open ('..\\生活\\旅游.txt',encoding='utf-8')
print(txt.read())
這是部分初學(xué)者會(huì)犯的錯(cuò)誤。
初學(xué)者認(rèn)為..\\
表示上一級(jí),然后再寫上級(jí)目錄的文件夾名稱生活
。
上述代碼錯(cuò)誤的地方在于多添加了\\生活
。
大家注意,..\\
就已經(jīng)指代了生活
文件夾,只有有分支的情況下,才會(huì)寫文夾名稱。
大家可以理解成直系親屬是直接用..
就能指代的。
只有旁系親屬才需要寫文件夾名稱
。
相對(duì)路徑的概念初學(xué)者會(huì)有點(diǎn)迷茫,但使用vscode的同學(xué)可以直接查看,多試幾次就明白了。
相對(duì)路徑的概念很重要,當(dāng)爬蟲的時(shí)候通常要保存的文件都使用相對(duì)路徑,你不理解相對(duì)路徑,可能就找不到你爬到的文件了哦!
-
文件
+關(guān)注
關(guān)注
1文章
566瀏覽量
24746 -
形式
+關(guān)注
關(guān)注
0文章
2瀏覽量
7564 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84692
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論