Python 模塊 os.path

Python 模塊 os.path

os.path 提供了平臺獨立(platform-independent)的一套接口操作文件和路徑。

使用模塊 os.path 提供的方法,可以使代碼很輕鬆的工作在各個操作系統,即使你的代碼不會在各個操作系統運行,也可以使用它們。

解析路徑 Parsing Paths


首先看一下使用 os.path 解析路徑,值得注意的是,要解析的路徑不用真實存在在系統中,它只是操作的字符串。

路徑解析需要依賴 os 模塊的一些變量:

  • os.sep - 路徑分隔符,如:'/' 或者 '\'
  • os.extsep - 文件名和擴展名分隔符,如 '.'
  • os.pardir - 目錄層級的上級,如 '..'
  • os.curdir - 當前目錄,如 '.'

方法 split() 按照路徑分隔符,將一個路徑返回包含兩個元素的元組,最後的元素是路徑的最後一部分。以下例子列舉了不同的情況:

Python 模塊 os.path

basename() 方法只返回 split() 方法返回的元組的第2部分的值。

Python 模塊 os.path

dirname() 方法只返回 split() 方法返回的元組的第1部分的值。

Python 模塊 os.path

splitext() 和 split() 方法很像,只不過是按照 os.extsep 分隔為兩個部分。

Python 模塊 os.path

commonprefix() 方法接收一個路徑列表,返回一個字符串,是公共的前綴,注意,返回的路徑不一定存在,也不是按照路徑分隔符確定的

Python 模塊 os.path

commonpath() 方法返回的是公共的路徑。

Python 模塊 os.path

構建路徑 Building Paths


除了獲取路徑的一部分,通常還需要從不同的字符串構建路徑,合併路徑的不同的部分形成一個完整的路徑。使用 join() 方法:

Python 模塊 os.path

路徑的不同部分使用 os.sep 值連接。

最後一個例子,如果其中參數是以絕對路徑開頭的,那麼它之前的參數路徑會廢棄掉。

expanduser() 方法會擴展波浪字符 ~(tilde)為用戶的根目錄(home directory)

Python 模塊 os.path

expandvars() 方法或擴展路徑中的 shell 環境變量(shell environment variables)。

Python 模塊 os.path

normpath() 方法會清除路徑中多餘的字符,如路徑分隔符:

Python 模塊 os.path

查看輸出,os.curdir 和 os.pardir 值也會處理。

abspath() 方法把相對路徑轉換為絕對路徑。

Python 模塊 os.path

文件時間


除了操作路徑之外,還可以和 os.stat() 一樣,獲取文件的時間:

Python 模塊 os.path

執行:

Python 模塊 os.path

判斷


os.path 可以判斷一個路徑是否是一個文件,是否是目錄或者軟連接等等。

Python 模塊 os.path

exists() 方法和 lexists() 方法都判斷文件是否存在,不同的是根據軟連接指向的文件是否存在,返回結果不同。exists() 軟連接存在,而真實文件不存在,返回 False,而 lexists() 返回 True,它不判斷真實文件是否存在。


分享到:


相關文章: