check if directory is writable in a portable way

Tim Chase python.list at tim.thechases.com
Tue Feb 28 06:34:59 EST 2012


On 02/28/12 04:07, Andrea Crotti wrote:
> How should I check if I can create files in a directory?
>
> So maybe the only solution that works is something like
> try:
>       open(path.join('temp', 'w'))
> except OsError:
>       return False
> else:
>       os.remove(path.join('temp'))
>       return True

It depends on the system & location.  It's possible to set up 
directories with permissions that allow you to create files but 
not delete them, in which case you'd either (1) create the file 
and possibly fail on subsequent tests because the file already 
exists; or (2) litter the directory with tmpnam()-like results 
that you were unable to delete.

It's ugly, I've encountered it, and haven't found a good 
universal solution myself.

-tkc







More information about the Python-list mailing list