Python入門的相對路徑和絕對路徑詳解
如果你是Python入門不久的話,對其想有在實際相關(guān)應(yīng)用的操作方案有所了解的話,你就可以點擊以下的文章對Python入門有一個更好的了解,以下的文章就是相關(guān)內(nèi)容的介紹,希望你會有所收獲。
對于Python入門不久的同志這可能是一個比較頭疼的問題,但對老鳥來說可能已經(jīng)是老生常談了.由于網(wǎng)上關(guān)于這方面的資料不多,所以這道菜更主要是為小 鳥準(zhǔn)備的,雖然我也還是一支小鳥.也歡迎老鳥們品嘗,并提出您們寶貴的意見.#t#
Python是一門跨平臺的語言,但并不是說你用Python隨便寫的一個程序就能在不同的平臺都能運行.而相對路徑和絕對路徑是這方 面的典型(相對路徑在Windows下可行,而在Linux下提示找不到相應(yīng)的文件路徑),因為Linux和Windows本身結(jié)構(gòu)就存在著較大的差異, 而這差異也給寫擴平臺的程序造成了困難.我自己嘗試過兩種方法來解決這個問題,下邊就與大家一起分享.
The first one: 程 序中涉及路徑時先區(qū)分系統(tǒng)類型,再根據(jù)不同的操作系統(tǒng)作不同的處理.Python目前支持以下操作系統(tǒng)的識別: ‘posix’, ‘nt’, ‘mac’, ‘os2′, ‘ce’, ‘java’, ‘riscos’,我也沒有完全試驗過,不過目前主流的應(yīng)用系統(tǒng)是Windows,Linux也在蓬勃的發(fā)展,所以我們主要區(qū)分它們就行了.一般我用一個 if…else語句來區(qū)分,菜鳥的做法,老鳥們怎么做呢
- if os.name == ”nt”
Windows路徑…elseLinux路徑…小節(jié): 這種方法較笨,非常不靈活,但這樣做解決了同一個程序可以同時在Windows和Linux下運行而不需要改動的問題
The second one: 這 種方法相對靈活的將相對路徑轉(zhuǎn)化為不同操作系統(tǒng)的絕對路徑,我相對喜歡這種方法.for example: 你寫了一個小系統(tǒng),所有文件和子文件夾都放在一個f:\school的主文件夾里,這個主文件夾下有class,teacher,student,log 等文件夾,有main.py這個小系統(tǒng)的主文件,還有好一些subfile.py的文件.
而主文件夾在Linux的路徑可能為/home/kkk /school,其他相對的路徑和Windows中相同.那么怎樣統(tǒng)一他們呢?在main.py中定義一個全局變量path,賦值于path = os.path.abspath(os.path.dirname(sys.argv[0])),這個path在Windows下運行它的值 為”f:/school”,而在Linux下運行它的值為”/home/kkk/school”,寫到這估計大家也知道我想干啥了,如果在程序中要訪問 (讀寫)日志文件可以用path+”/log/kk.log”來表示文件的路徑.
小節(jié): 此方法相對于***種方法靈活,需要注意的是path+”/log/kk.log”,我們一般喜歡用path+\\log\\kk.log這樣的方式,但這 樣在Linux中就行不通了,提示找不到文件路徑.注: 網(wǎng)上還有在主程序中加入sys.path.append(path),然后系統(tǒng)中訪問文件用相對路徑的方法,但我試了一下好像有問題(大家可以嘗試一下, 讓我也分享你們的勞動成果)網(wǎng)站建設(shè)。
以上的文章就是對Python入門的相對路徑與絕對路徑的相關(guān)介紹。