Python中怎么獲取相對路徑和絕對路徑,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
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中怎么獲取相對路徑和絕對路徑問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。