Non è indipendente dal sistema operativo, ma questo funziona su Linux, e probabilmente su OS X così: ('df').
commands.getoutput stampa split ('\ n') [ 1] .split() [3]
Come funziona? Ottiene l'output di 'df.' comando, che ti dà informazioni sul disco sulla partizione di cui la directory corrente è una parte, la divide in due righe (proprio come viene stampata sullo schermo), quindi prende la seconda riga di quella (aggiungendo [1] dopo la prima split()), quindi divide quella riga in diversi pezzi separati da spazi bianchi e, infine, ti dà il 4 ° elemento in quella 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 approccio multi-piattaforma discussa in http://stackoverflow.com/questions/51658/cross-platform-space-remaining -on-volume-using-python/2372171 # 2372171 –