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