No es independiente del sistema operativo, pero esto funciona en Linux, y probablemente en OS X, así: ('df').
commands.getoutput impresión de división ('\ n') [ 1] .split() [3]
¿Cómo funciona? Obtiene la salida del 'df'. comando, que le da información del disco sobre la partición de la cual el directorio actual es parte, la divide en dos líneas (tal como se imprime en la pantalla), luego toma la segunda línea de eso (al agregar [1] después del primero divide()), luego divide esa línea en diferentes piezas separadas por espacios en blanco, y, finalmente, te da el 4 ° elemento en esa lista.
>>> commands.getoutput('df .')
'Filesystem 1K-blocks Used Available Use% Mounted on\n/dev/sda3 80416836 61324872 15039168 81% /'
>>> commands.getoutput('df .').split('\n')
['Filesystem 1K-blocks Used Available Use% Mounted on', '/dev/sda3 80416836 61324908 15039132 81% /']
>>> commands.getoutput('df .').split('\n')[1]
'/dev/sda3 80416836 61324908 15039132 81% /'
>>> commands.getoutput('df .').split('\n')[1].split()
['/dev/sda3', '80416836', '61324912', '15039128', '81%', '/']
>>> commands.getoutput('df .').split('\n')[1].split()[3]
'15039128'
>>> print commands.getoutput('df .').split('\n')[1].split()[3]
15039128
Un enfoque multiplataforma discute en http://stackoverflow.com/questions/51658/cross-platform-space-remaining -on-volume-using-python/2372171 # 2372171 –