На платформах UNIX / Linux используйте встроенный в Python os.statvfs .В Windows, если вы не можете найти стороннюю библиотеку, которая делает это, вам нужно будет использовать ctypes для вызова функции Win32 GetDiskFreeSpace , например:
import ctypes
sectorsPerCluster = ctypes.c_ulonglong(0)
bytesPerSector = ctypes.c_ulonglong(0)
rootPathName = ctypes.c_wchar_p(u"C:\\")
ctypes.windll.kernel32.GetDiskFreeSpaceW(rootPathName,
ctypes.pointer(sectorsPerCluster),
ctypes.pointer(bytesPerSector),
None,
None,
)
print(sectorsPerCluster.value, bytesPerSector.value)
Обратите внимание, чтоctypes стал частью Python stdlib в 2.5 или 2.6 (не помню, какой именно).
Я поместил подобные вещи в функцию, которая сначала проверяет наличие варианта UNIX, и возвращается к ctypes.если (предположительно потому что он работает на Windows) нет.Таким образом, если Python когда-либо реализует statvfs в Windows, он просто использует это.