close

路徑處理在python裡面扮演很重要角色,我自己是時常會使用到,在這邊來記錄一下最常用的os.path套件相關類別方法,這些方法被用來處理檔案路徑,提醒自己使用時不會用錯!!

其實不論是圖片、音樂、程式都是以檔案(file)形式存放在電腦的儲存裝置,而通常我們都是把檔案存放在目錄(directory)或是資料夾(folder),而目錄我們都熟知,是一個階層式的結構,而檔案路徑有分成絕對路徑以及相對路徑。

  • 絕對路徑(absolute path):絕對路徑必須要寫出檔案所在的根目錄、所有子目錄、及自己的檔案名稱。
    • 例如:C:\Program Files\java\jdk-11.0.1\release.txt
  • 相對路徑(relative path):看字的意思就知道了,相對路徑是相對現在目前的目錄到檔案所經過的子目錄,簡單來說例如
    • 就是我目前的目錄是在 C:\Program Files,而若是要以相對路徑表示release.txt。
    • 可以寫成旁邊的路徑\java\jdk-11.0.1\release.txt

重點1:

在python中要注意如果要直接print出路徑名稱時,最好是使用\\或是r'...\....',這兩種處理方式,因為字串裡面\這個符號是跳脫字元,有時候剛好很巧,後面是接t或n或r,編譯器就以為你要控一行或是換行等等,如下圖,但如果用變數來裝就不用這樣處理了~

1.png

2.png

重點2:

了解完路徑,接下來就是os.path套件提供的路徑處理方法,下面記錄我常用的幾種處理方法,提供給大家參考~

先來假設我要處理的檔案路徑是'D:\school\class\student.txt'的student.txt

1.第一部一定要先import os,並給path賦值我要處理的檔案路徑

import os
path = 'D:\school\class\student.txt'

 

2.os.path.dirname(__file__)->是一個返回當前所在的檔案路徑

print('os.path.dirname\n-->'+os.path.dirname(__file__))

 

3.os.path.dirname(path)->用於去掉檔案名稱,只有返回此檔案所在的目錄路徑而已

print('os.path.dirname\n-->'+os.path.dirname(path))

 

4.os.path.basename(path)->用於去掉檔案路徑,只有返回此檔案的檔案名稱而已

print('os.path.basename\n-->'+os.path.basename(path))

 

5.path.split('\\')->不是os.path模組的方法,而是字串處理的一種,path()參數裡面釋放要切割的東西是什麼,之所以要兩個\\,原因也是一樣,跳脫字元的緣故,重點返回是一個串列(list)

print('切法path.split\n-->'+str(path.split('\\')))

 

6.path.split('\\',2)->跟上一個很像,但多了一個參數,第二個參數是指明要分割幾次,我寫2就是我從左至右總共切兩次,重點返回也是一個串列(list)

print('切法path.split\n-->'+str(path.split('\\',2)))

 

7.os.path.split(path)->跟上面的split是不同的,這一個path是屬於os.path模組的方法,用於把目錄路徑與檔案名稱分開,並且返回是一個數組(tuple)

print('os.path.split\n-->'+str(os.path.split(path)))

 

8.os.path.splitdrive(path)->用以把磁碟位置與檔案路徑分開來,並且返回是一個數組(tuple)

print('os.path.splitdrive\n-->'+str(os.path.splitdrive(path)))

 

9.os.path.splitext(path)->用以把檔案路徑及副檔名分開來,並且返回是一個數組(tuple)

print('os.path.splitext\n-->'+str(os.path.splitext(path)))

 

10.os.path.join('D:\school\class',student.txt')->用以把兩個參數合併起來成一個路徑

print('os.path.join('D:\school\class','student.txt')

 

結果圖如下,這實在有夠實用,如果有問題都可以在下面發問

3.png

4.png

 

arrow
arrow
    文章標籤
    python 檔案路徑 os.path
    全站熱搜

    KV 發表在 痞客邦 留言(1) 人氣()