-
- 知識回顧
-
- 什么是相對路徑
-
- 相對路徑的語法
-
- 查看相對路徑的方法
-
- 寫出所有txt文件的相對路徑
- 5.1 同目錄
- 5.2 上級目錄
-
- 用相對路徑讀取txt文件
- 6.1 讀取旅游.txt
- 6.2 讀取旅游經費.txt
- 6.3 讀取筆記.txt和new.txt
- 6.4 讀取目標.txt文件
-
- 上2級目錄
- 7.1 同級目錄
- 7.2 上級目錄
- 7.3 上2級目錄
- 7.4 有分支的上級目錄
-
- 總結
1. 知識回顧
絕對路徑是指文件在硬盤上真正存在的路徑。
就是從盤符(C盤、D盤、E盤、F盤)開始一直到文件所在的具體位置。
絕對路徑 = 郵寄地址
絕對路徑就相當于生活中的郵寄地址,郵寄地址總是從省份開頭,然后到市縣、到街區再到具體門牌號。
武漢大學的地址是:湖北省武漢市武昌區八一路299號
。這就是一個絕對路徑,通常是郵寄東西才會用的地址。
2. 什么是相對路徑
相對路徑 = 打車地址
相對路徑的相對,顧名思義就是相對某個參考對象而言的。
假設你本人已經在武漢市,你打車的時候你會跟司機說去武漢大學,或者說是去武昌區八一路。
你肯定不會跟司機說去湖北省武漢市某某地方,省份和市通常是被你省略了。
Python中的相對路徑基本等同于打車地址這一概念。
相對路徑是針對當前文件夾這一參考對象,來描述文件路徑的形式。
當前文件夾是指我們編程使用的編輯器打開的文件夾。
【溫馨提示】
我剛開始接觸相對路徑的時候,總是以打開的py文件為參考對象,相對路徑總是報錯。
后來琢磨了下,才發現,當前文件夾不是指py文件所在的文件夾,是指編輯器打開的文件夾。
3. 相對路徑的語法
相對路徑使用兩個特殊符號表示:點(.) 和雙點(..)。
一個點. 表示文件或文件夾所在的當前目錄。
兩個點.. 表示當前目錄的上一級目錄。
上n級就用n個.. 表示。
找相對路徑的重點在于找到編輯器打開的文件夾。
4. 查看相對路徑的方法
我用的是vscode編輯器,相對路徑的參考對象就是我的編輯器打開的文件夾。
現在,我用vscode打開名為生活
的文件夾。
68-1打開文件夾
選擇生活
文件夾。
68-2生活
這一步很重要,vscode打開的文件夾不同,則相對路徑就不同。
- 單擊vscode編輯器左上角的
資源管理器
,下面會出現一個當前文件夾的文件目錄; - 鼠標右鍵點擊
旅游.txt
文件; - 點擊
復制相對路徑
,就能得到旅游.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文章
565瀏覽量
24729 -
形式
+關注
關注
0文章
2瀏覽量
7561 -
python
+關注
關注
56文章
4792瀏覽量
84629
發布評論請先 登錄
相關推薦
評論