0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

什么是Python的相對(duì)路徑

汽車電子技術(shù) ? 來源:安迪python學(xué)習(xí)筆記 ? 作者:安迪python學(xué)習(xí)筆記 ? 2023-02-23 10:11 ? 次閱讀
    1. 知識(shí)回顧
    1. 什么是相對(duì)路徑
    1. 相對(duì)路徑的語(yǔ)法
    1. 查看相對(duì)路徑的方法
    1. 寫出所有txt文件的相對(duì)路徑
    • 5.1 同目錄
    • 5.2 上級(jí)目錄
    1. 用相對(duì)路徑讀取txt文件
    • 6.1 讀取旅游.txt
    • 6.2 讀取旅游經(jīng)費(fèi).txt
    • 6.3 讀取筆記.txt和new.txt
    • 6.4 讀取目標(biāo).txt文件
    1. 上2級(jí)目錄
    • 7.1 同級(jí)目錄
    • 7.2 上級(jí)目錄
    • 7.3 上2級(jí)目錄
    • 7.4 有分支的上級(jí)目錄
    1. 總結(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ì)路徑的語(yǔ)法

相對(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ì)路徑就不同。

  1. 單擊vscode編輯器左上角的資源管理器,下面會(huì)出現(xiàn)一個(gè)當(dāng)前文件夾的文件目錄;
  2. 鼠標(biāo)右鍵點(diǎn)擊旅游.txt文件;
  3. 點(diǎn)擊復(fù)制相對(duì)路徑,就能得到旅游.txt文件的相對(duì)路徑,如下所示:
旅游.txt

圖片

68-3復(fù)制相對(duì)路徑

【備注】

在當(dāng)前文件夾下,vscode省略了.\\,所有才得到了上面的相對(duì)路徑。

.\\是可以省略的。

.\\要不要程序都不會(huì)報(bào)錯(cuò),大家根據(jù)自己的習(xí)慣編寫即可。

旅游.txt文件的相對(duì)路徑完整的表述如下所示:

.\\旅游.txt

【語(yǔ)法解析】

.\\表示當(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ì)路徑,可能就找不到你爬到的文件了哦!圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    555

    瀏覽量

    24638
  • 形式
    +關(guān)注

    關(guān)注

    0

    文章

    2

    瀏覽量

    7554
  • python
    +關(guān)注

    關(guān)注

    54

    文章

    4758

    瀏覽量

    84289
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux中的相對(duì)路徑和絕對(duì)路徑就是這么簡(jiǎn)單

    對(duì)路徑名和相對(duì)路徑名是在 Linux 上指定目錄或文件的虛擬地址的兩種方式。那么這兩種路徑類型之間有什么區(qū)別,您應(yīng)該在命令中使用哪一種?現(xiàn)在就讓我們一起來看看吧。
    發(fā)表于 11-25 09:07 ?2032次閱讀

    Python相對(duì)路徑轉(zhuǎn)化為絕對(duì)路徑

    編程語(yǔ)言python
    小凡
    發(fā)布于 :2022年09月09日 12:04:29

    相對(duì)路徑

    請(qǐng)問有沒有大蝦有關(guān)于相對(duì)路徑的資料,如果有的話否上傳共享下。
    發(fā)表于 07-19 10:10

    labview基路徑相對(duì)路徑

    各位大神,請(qǐng)教一下基路徑相對(duì)路徑是什么概念?。?/div>
    發(fā)表于 07-23 11:08

    使用udl連接相對(duì)路徑的數(shù)據(jù)庫(kù),報(bào)錯(cuò)

    使用udl連接相對(duì)路徑數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)和udl放在同一個(gè)文件夾,寫入數(shù)據(jù)時(shí)候報(bào)錯(cuò),提示路徑不對(duì),怎么解決?udl內(nèi)容如下:[oledb]; Everything after this line
    發(fā)表于 08-13 23:51

    【新手求帶】labview在創(chuàng)建路徑時(shí),使用時(shí)間日期作為相對(duì)路徑,總是找不到路徑時(shí)怎么回事?

    【新手求帶】labview在創(chuàng)建路徑時(shí),使用時(shí)間日期作為相對(duì)路徑,總是找不到路徑時(shí)怎么回事?謝各路大神幫忙解答?。?!
    發(fā)表于 04-25 15:28

    求助labview中創(chuàng)建路徑函數(shù)的名稱或相對(duì)路徑怎么設(shè)置

    labview中創(chuàng)建路徑函數(shù)的名稱或相對(duì)路徑怎么設(shè)置
    發(fā)表于 09-22 08:50

    請(qǐng)教關(guān)于Labview生成exe后的文件路徑問題

    在Labview里用了寫入測(cè)量文件并保存到一個(gè)文件夾下,下面會(huì)繼續(xù)調(diào)用該測(cè)量文件。生成exe之前可以,但是生成exe后在別人電腦上就不行了。生成的測(cè)量文件并沒有保存到指定位置??吹接刑诱f是相對(duì)路徑的問題,那這個(gè)測(cè)量文件的路徑怎么改成
    發(fā)表于 08-01 10:31

    請(qǐng)教關(guān)于CCS4 鏈接文件設(shè)置相對(duì)路徑問題

    CCS4的相對(duì)路徑
    發(fā)表于 08-07 06:01

    請(qǐng)問通過ccs6.0怎么設(shè)置文件的相對(duì)路徑?

    TI工程師們:你好!請(qǐng)問通過ccs6.0怎么設(shè)置文件的相對(duì)路徑?就是無論怎么移動(dòng)工程,編譯后都不會(huì)報(bào)錯(cuò)。 謝謝!
    發(fā)表于 09-14 11:38

    編譯器配置不允許使用相對(duì)路徑

    我最近遇到了一個(gè)問題,當(dāng)我試圖與一個(gè)同事共享一個(gè)項(xiàng)目時(shí),我認(rèn)為如果我能把這個(gè)特性添加到創(chuàng)建者的下一個(gè)版本中,那么它可能是容易解決的。特別是“附加包含目錄”編譯器配置并在當(dāng)前不允許被使用相對(duì)路徑。我
    發(fā)表于 03-08 12:00

    LabVIEW絕對(duì)路徑相對(duì)路徑

    路徑方式有兩種,相對(duì)路徑和絕對(duì)路徑,由于移植性原因,建議使用相對(duì)路徑,但相對(duì)路徑在開發(fā)環(huán)境與運(yùn)行環(huán)境下的
    發(fā)表于 07-12 10:03

    調(diào)用dll的vi在拷到別的電腦后,dll的絕對(duì)路徑發(fā)生變化了,怎么讓vi自動(dòng)找到dll文件

    拷過來后,vi無法運(yùn)行,因?yàn)檎也坏絛ll文件,調(diào)用庫(kù)節(jié)點(diǎn)里面的dll路徑還是原來的,而實(shí)際dll文件的路徑肯定已經(jīng)變了,但dll與vi的相對(duì)路徑沒有變化,如何讓vi自動(dòng)找到dll,而不需要每次手動(dòng)重新選擇
    發(fā)表于 12-23 11:54

    keil軟件報(bào)錯(cuò),添加的.h文件找不到其相對(duì)路徑

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

    按日期保存(相對(duì)路徑).vi

    相對(duì)路徑保存當(dāng)前文檔,并且以日期的形式保存
    發(fā)表于 07-20 10:21 ?4次下載