2011-08-19 59 views
3

在Python中,給定目錄或文件路徑(如/ usr/local),我需要獲取文件系統的可用位置。在某些系統中,它可能是/(root)本身,而在某些系統中可能是/ usr。在Python中,如何獲取給定文件路徑的文件系統

我試過os.statvfs它沒有幫助。我是否必須使用路徑名運行df命令並從輸出中提取文件系統?有更好的解決方案嗎?

它僅適用於linux/unix平臺。

由於

+0

你只想要安裝路徑,或者其他的一些信息? – utdemir

+0

只是安裝點。 – Umapathy

回答

5

這裏是一個食譜稍加修改的版本中發現hereos.path.realpath已添加,因此符號鏈接處理正確。

import os 
def getmount(path):   
    path = os.path.realpath(os.path.abspath(path)) 
    while path != os.path.sep: 
     if os.path.ismount(path): 
      return path 
     path = os.path.abspath(os.path.join(path, os.pardir)) 
    return path 
+0

美觀大方。謝謝 – Umapathy

4

使用os.stat,以獲得在中心(st_dev字段)的文件/目錄的設備數,然後遍歷系統安裝件(/etc/mtab/proc/mounts或),比較每個的st_dev安裝點與這個號碼。

2

由於df本身打開和分析/etc/mtab,你既可以走這條路,並分析這個文件,以及(另一種是/proc/mounts),或者你確實解析df輸出。

相關問題