(1) 概念理解
直接說概念可能會(huì)有些抽象,我們來舉一個(gè)例子。
絕對(duì)路徑,就是一個(gè)門牌號(hào),確定不變,比如故宮的地址:北京市東城區(qū)景山前街4號(hào)。
無論你在哪里,故宮都在那里,不會(huì)因?yàn)槟闳チ嗣绹?guó),故宮就的位置就變成了紐約市東城區(qū)景山前街4號(hào)。
那么故宮的絕對(duì)路徑就是:北京市東城區(qū)景山前街4號(hào)。
相對(duì)路徑:會(huì)根據(jù)你當(dāng)前的位置而變化。
比如,你現(xiàn)在在「東單地鐵站」,那么故宮對(duì)你來說,就是坐一站地鐵(天安門東站),出站,往前走500米,右拐。
所以,當(dāng)你在「東單地鐵站」時(shí),故宮的相對(duì)路徑就是:當(dāng)前位置,坐一站地鐵,出站,往前走500米,右拐。
那假如,你現(xiàn)在本身就在「天安門東站」呢?如果你還按照剛才的路徑來走,會(huì)發(fā)生什么情況?
當(dāng)前位置(天安門東站),坐一站地鐵(天安門西站),出站,往前走500米,右拐。然后,你就會(huì)走到海里去。其中,坐一站地鐵就是多余的。
所以,當(dāng)你在「天安門東站」時(shí),故宮的相對(duì)路徑就是:當(dāng)前位置,出站,往前走500米,右拐。
(2) 根目錄
好,剛才講了一個(gè)生活化的例子,我們回到計(jì)算機(jī)上。
其實(shí)路徑,就和我們?nèi)粘I钪械穆肪€是一個(gè)意思。你用手機(jī)導(dǎo)航的時(shí)候,需要輸入,起點(diǎn)和終點(diǎn),它才能給你規(guī)劃出一條路線出來。
對(duì)我們來說,終點(diǎn)(即文件放在哪里)是確定的,相對(duì)路徑和絕對(duì)路徑的區(qū)別只是起點(diǎn)不同而已。
相對(duì)路徑的起點(diǎn),就是我們的當(dāng)前位置,如果我們移動(dòng)位置,導(dǎo)航也會(huì)實(shí)時(shí)做出調(diào)整,比如:“您已偏離路線,正在為您重新規(guī)劃”。
絕對(duì)路徑的起點(diǎn),是一個(gè)確定不變的位置,在上面的例子中,“北京市”就相當(dāng)于是我們的起點(diǎn)。
在計(jì)算機(jī)中,絕對(duì)路徑也有唯一確定的起點(diǎn),就是“根目錄”。
比如,在我上面給出的例子中“F:\python \hello.py",F(xiàn):\(F盤)就是根目錄。「hello.py」文件放在「F盤」下面的「python 」文件夾里面。
在windows系統(tǒng),我們的硬盤可能分了CDEF……這些個(gè)盤,所以不同盤,就是不同的根。
有人的電腦,可能只有C盤這一個(gè)盤,這取決于給你裝電腦的那個(gè)人(有可能是生成廠家)的喜好。
所以,每個(gè)人電腦的情況都不一樣,你只用記住,不同的盤是不同的根就行了。
在MAC系統(tǒng),就不再分這個(gè)盤那個(gè)盤了,只有一個(gè)統(tǒng)一的根目錄“/”,你可以簡(jiǎn)單的理解為windows下只有一個(gè)C盤的情況。這個(gè)我就不展開了,mac也不像windows,目錄結(jié)構(gòu)可以很直觀的看到。
舉一個(gè)簡(jiǎn)單的例子,大家體會(huì)一下就行,比如我要找我當(dāng)前用戶圖片目錄下的「頭像.jpg」這個(gè)文件。
Windows系統(tǒng)下,路徑是這樣的:「C:\Users\LUFFY\」
mac系統(tǒng)下,路徑是這樣:「/Users/moqian/」
其中,LUFFY和moqian都是用戶名,每個(gè)人的電腦都可能不一樣。
大家能看到雖然是兩個(gè)系統(tǒng),但是他們的目錄結(jié)構(gòu)是差不多的,只是根目錄不同,一個(gè)是從「C盤」開始的,一個(gè)是從「/」開始的。
03
實(shí)踐
好,說完了理論的部分,我們回到命令行,開始實(shí)踐。(我下面說的所有命令,輸入完之后,都要敲一下回車鍵才能執(zhí)行哈,這個(gè)我就不在每個(gè)命令后面說了)
前面說到,運(yùn)行python程序,我們只用做一件事:
python 文件路徑+文件名
所以,我們同樣要分相對(duì)路徑和絕對(duì)路徑兩種情況。
(1) 絕對(duì)路徑
先說絕對(duì)路徑,這個(gè)比較簡(jiǎn)單。
直接「python 絕對(duì)路徑」就好了。
就像我上面給的例子那樣「python F:\python \hello.py」(準(zhǔn)確一點(diǎn),應(yīng)該是「python "F:\python \hello.py"」,因?yàn)槲业奈募A名字里有空格,所以要拿引號(hào)包起來)。
因?yàn)槭墙^對(duì)路徑,只要打開cmd,就可以直接執(zhí)行這一句,不用管你現(xiàn)在在哪,因?yàn)椤窮:\python \hello.py」是一個(gè)唯一確定的地址。
(2) 相對(duì)路徑
為了方便接下來的講解,我會(huì)把文件夾中間的空格換成下劃線,這樣就不用加引號(hào)了,大家看著也更清爽一點(diǎn)。
再來說相對(duì)路徑,這個(gè)就需要你清楚地知道自己在哪了(即當(dāng)前目錄)。
通常來說,當(dāng)你打開一個(gè)新的命令行,你的當(dāng)前目錄就是你當(dāng)前用戶的目錄。
windows:
大于號(hào)(>)前面的就是你的當(dāng)前目錄了。
mac下面的話,可能沒有那么直觀,你可以使用「pwd」命令來查看:
我們以windows系統(tǒng)為例,知道了當(dāng)前路徑之后,我們就可以規(guī)劃去終點(diǎn)「F:\\hello.py」的路線了。
這里要特別說明一下,因?yàn)閣indows分了不同的盤,也就有了不同的根,我們沒法從一個(gè)根直接通過相對(duì)路徑去到另一個(gè)根。
在我們的例子中,起點(diǎn)在「C:\Users\LUFFY」,一個(gè)是C盤,一個(gè)是F盤,所以,需要通過輸入盤符(字母+冒號(hào))來切換到對(duì)應(yīng)的根上去。
比如這里,我們就需要輸入「F:」(大小寫無所謂)來切換:
mac系統(tǒng)不分盤,所以不用考慮這個(gè)問題。
之后的操作都一樣了,我就不再區(qū)分兩個(gè)系統(tǒng)了。
在此之前,我們要先請(qǐng)出三個(gè)特殊的符號(hào),暫時(shí)不做詳細(xì)講解,結(jié)合后面的內(nèi)容一起講:
"."(一個(gè)點(diǎn),即英文句號(hào)),代表當(dāng)前目錄
".."(兩個(gè)點(diǎn),即兩個(gè)英文句號(hào)),代表上一級(jí)目錄
"/"(斜杠),代表根目錄
假設(shè)我們的目錄結(jié)構(gòu)是這樣的,其中文件夾都是白色的,文件是灰色的:
前面,我們通過命令來到了「F:/」,也就是F盤根目錄。
那么hello.py相對(duì)于我們的路徑就是「.//hello.py」
其中第一個(gè)點(diǎn)就代表當(dāng)前路徑,只不過,我們通常情況下可以省略這個(gè)點(diǎn),所以「/hello.py」和上面這句話是等價(jià)的。
然后,因?yàn)椤窮:/」就是根目錄,所以「//hello.py」和上面兩句話也是等價(jià)的,其中第一個(gè)斜杠代表根目錄。
所以,這時(shí)候,你可以使用「python .//hello.py」、「python .//hello.py」、「python //hello.py」來運(yùn)行hello.py文件。
然后,我們來講最后一個(gè)上級(jí)目錄的用法。
假如,你現(xiàn)在在目錄下,那么hello.py相對(duì)于我們的路徑就是「../hello.py」。
也就是本來你在文件夾下面,現(xiàn)在通過“..”來到了的上一級(jí)目錄,的上一級(jí)目錄就是文件夾,hello.py就在文件夾下面。
假如,你現(xiàn)在在目錄下,那么hello.py相對(duì)于我們的路徑就是「..//hello.py」。
也就是本來你在文件夾下面,先通過“..”來到了的上一級(jí)目錄,也就是根目錄,然后再?gòu)母夸浿鸺?jí)向下,找到hello.py文件。
假如,你現(xiàn)在在c_test目錄下,那么hello.py相對(duì)于我們的路徑就是「../..//hello.py」。
也就是本來你在c_test文件夾下面,先通過第一個(gè)“..”來到了c_test的上一級(jí)目錄,也就是文件夾,然后再通過第二個(gè)“..”來到了的上一級(jí)目錄,也就是根目錄,最后,再?gòu)母夸浿鸺?jí)向下,找到hello.py文件。
初學(xué)上級(jí)目錄,這里可能會(huì)感覺有點(diǎn)繞,你可以自己畫個(gè)圖理一理,或者去電腦上試試,多玩?zhèn)€兩次就會(huì)了。
04
補(bǔ)充
大家應(yīng)該也發(fā)現(xiàn)了,如果我每次執(zhí)行個(gè)文件都要輸一大串路徑,那也太累了吧。
所以,我們有另一個(gè)偷懶的方法,也就是切換我們的當(dāng)前路徑,把我們的當(dāng)前路徑切換到和要運(yùn)行的文件一個(gè)目錄,那就只輸文件名,不用再加前面的一長(zhǎng)串啦。
切換當(dāng)前路徑的命令,就是cd(change )。
用法:cd 路徑
把上面的學(xué)明白之后,cd命令就很簡(jiǎn)單啦,不過要注意的是,cd只能切換到文件夾底下,不能直接切到文件里面去。
拿我們的第一個(gè)例子來說:
目前你在「F:/」,我們可以先「cd 」,把當(dāng)前目錄切換到文件夾下,然后「python hello.py」來執(zhí)行。
再拿最后那個(gè)最復(fù)雜的來說:
目前你在「c_test」,你可以先「cd ../../」,然后「python hello.py」來執(zhí)行。
cd也可以分多步進(jìn)行,比如這樣:
1.「cd ..」
2.「cd ..」
3.「cd 」
或者這樣:
1.「cd ../..」
2.「cd 」
又或者這樣:
1.「cd ..」
2.「cd ../」
總之就是,當(dāng)你確定了文件的目錄結(jié)構(gòu),你就可以隨意的跳轉(zhuǎn),一次跳一級(jí),或者跳多級(jí)都行。
關(guān)于路徑與cd命令,今天就先講到這吧。
我原以為這種我熟得很的內(nèi)容,一個(gè)小時(shí)就能搞定它呢,沒想到,寫了這么久。果然,自己懂和把人給講懂,完全是兩碼事。
希望對(duì)你有幫助啊,這篇文章真是干得不能再干了,哈哈哈,我得去喝口水先了~
字?jǐn)?shù):2794
耗時(shí):3小時(shí)41分
··················END··················