clean up free space

This commit is contained in:
Marcos Pinto 2008-09-21 19:52:47 +00:00
parent 6465c8eede
commit 0712da0fd0
1 changed files with 7 additions and 15 deletions

View File

@ -385,22 +385,14 @@ def get_path_size(path):
dir_size += os.path.getsize(filename)
return dir_size
def free_space()
"""returns free space in each partition"""
"""example: {PARTITION: [TOTAL, AVAIL]}"""
space = {}
def free_space(path):
"""returns free space"""
if windows_check():
import win32api
drive = get_default_download_dir().split(":")[0]
drive = path.split(":")[0]
free = win32api.GetDiskFreeSpaceEx(drive)[0]
total = win32api.GetDiskFreeSpaceEx(drive)[1]
space[drive] = [total, free]
return fsize(free)
else:
from subprocess import Popen, PIPE
import re
whitespace_spliter = re.compile("\s+")
output = Popen(["df", "-hP", "--exclude-type=iso9660", "--exclude-type=udf", \
"--exclude-type=tmpfs", get_default_download_dir], stdout=PIPE).communicate()[0]
modified = whitespace_spliter.split(output.split("\n")[1])
space[modified[0]] = [modified[1], modified[3]]
return space
disk_data = os.statvfs(path)
block_size = disk_data.f_bsize
return fsize(disk_data.f_bavail * block_size)