check disc space
David M. Wilson
dw-google.com at botanicus.net
Thu Dec 11 06:17:00 EST 2003
"Fredrik Lundh" <fredrik at pythonware.com> wrote...
> - the os module is traditionally used to provide access to posix-style
> services provided by the OS (or the C library). in this case, os.statvfs
> is such a function; calling out to "du" isn't
> (shouldn't that be "df", btw? os.popen("du -k dir").split()[-5] sure
> doesn't give the free diskspace on any platform I have access to...)
Um, yep. Fixed. *sheepish shrug*
> (a third argument is that "free disc space" is a rather meaningless metric
> on a modern operating system; it's hardly ever useful for anything except
> "warning, warning, less than 5% free space" alerts.
Considering what I see python used for on a day-to-day basis, this
isn't "hardly ever useful". I have seen jobs fail as a direct result
of no disk space check. This should indeed be handled elsewhere and in
a different fashion, but sometimes the world just ain't the ideal
place you'd like to believe it is.
When you are performing 4gb deduplication runs on a cluster, and have
to wait a couple of days only to find out you don't have enough disk
space to write out the last 5 records of the result tables, I think
this silly little module can be justified.
And why not just use the POSIXy interface provided by os? Well, the
company I work for uses the same codebase for both Windows and Linux
clustering, which is a quite a feat. All support tools as such must
run under both operating systems too.
> you really don't want
> people to write "if os.getfreespace() >= len(buffer): f.write(buffer)" and
> file a bug when write fails ;-)
Certainly not! :)
But "if estimated_space > int(free_space * 1.05): ..." might not be
such a bad thing when there is no other route to sanity available.
Thanks,
David.
More information about the Python-list
mailing list