Fredrik Lundh wrote:
dinu wrote:
Well, this is the usual "If you need it, do it yourself!" answer, that bites the one who dares to speak up for all those hundreds who don't... isn't it?
fwiw, Python already supports this for real Unix platforms:
os.statvfs("/") (8192, 512, 524288, 365788, 348336, 600556, 598516, 598516, 0, 255)
here, the root disk holds 524288x512 bytes, with 348336x512 bytes free for the current user, and 365788x512 bytes available for root.
(the statvfs module contains indices for accessing this "struct")
Implementing a small subset of statvfs for Windows wouldn't be that hard (possibly returning None for fields that don't make sense, or are too hard to figure out).
(and with win32all, I'm sure it can be done without any C code).
It seems that all we need is Jack to port this to the Mac and we have a working API here :-) Let's do it... import sys,os try: os.statvfs except KeyError: # Win32 implementation... # Mac implementation... pass else: import statvfs def freespace(path): """ freespace(path) -> integer Return the number of bytes available to the user on the file system pointed to by path.""" s = os.statvfs(path) return s[statvfs.F_BAVAIL] * long(s[statvfs.F_BSIZE]) if __name__=='__main__': path = sys.argv[1] print 'Free space on %s: %i kB (%i bytes)' % (path, freespace(path) / 1024, freespace(path)) -- Marc-Andre Lemburg ______________________________________________________________________ Company & Consulting: http://www.egenix.com/ Python Pages: http://www.lemburg.com/python/