Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #20973

Re: check if directory is writable in a portable way

Date 2012-02-28 10:50 +0000
From Tim Golden <mail@timgolden.me.uk>
Subject Re: check if directory is writable in a portable way
References <4F4CA76B.5040408@gmail.com>
Newsgroups comp.lang.python
Message-ID <mailman.221.1330426255.3037.python-list@python.org> (permalink)

Show all headers | View raw


On 28/02/2012 10:07, Andrea Crotti wrote:
> How should I check if I can create files in a directory?
>
> I tried to simply check if the directory is writeable with this function:
>
> def is_writable(name):
> """Return true if the file is writable from the current user
> """
> return os.access(name, os.W_OK)
>
> but that doesn't work at all on Windows, because for example if I create
> a new directory
> and do os.access(dirpath, os.W_OK) it returns false, even if I can
> create files inside without problems.
>
> 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
>
> would it make sense?


This is remarkably complicated to do on Windows by
checking Security APIs etc. If the try:except dance
works for you, I recommend that you use it. (In the
past, people who have asked this question have not
wanted to use try-except because they didn't want the
overhead of creating even a zero-length file)

TJG

Back to comp.lang.python | Previous | Next | Find similar | Unroll thread


Thread

Re: check if directory is writable in a portable way Tim Golden <mail@timgolden.me.uk> - 2012-02-28 10:50 +0000

csiph-web