check if directory is writable in a portable way

Andrea Crotti andrea.crotti.0 at gmail.com
Tue Feb 28 13:01:00 CET 2012


On 02/28/2012 11:34 AM, Tim Chase wrote:
> 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
>

That's really ugly right, didn't think about this possibility.
Well it's not a really critical part of my code, so I guess it's fine 
with the try-except dance..

But isn't there (or should there be) a windows-related library that 
abstracts this horrible things?

Thanks



More information about the Python-list mailing list