Can't write to a directory made w/ os.makedirs
David Goldsmith
eulergaussriemann at gmail.com
Sun Jan 1 07:05:13 EST 2012
On Jan 1, 1:37 am, Tim Golden <m... at timgolden.me.uk> wrote:
> On 31/12/2011 22:13, OlyDLG wrote:
> > Hi! I'm working on a script utilizing os.makedirs to make directories
> > to which I'm then trying to write files created by exe's spawned w/
> > subprocess.call; I'm developing in Stani's Python Editor, debugging
> > using Winpdb. I've gotten to the point where
> > subprocess.Popen._execute_child is raising a WindowsError(5,'Access is
> > denied') exception. I've tried: setting the mode in the makedirs
> > call; using os.chmod(<dir>, stat.S_IWRITE); and even setting a
> > breakpoint before the subprocess.call and unsetting the read-only
> > attribute of the pertinent directory tree using the Windows directory
> > Properties dialog--which doesn't "take," if that's a clue--all to no
> > avail.
>
> Whatever you're trying to do, resetting the read-only bit
> on the Windows directory is not the answer. It has, bizarrely,
> nothing to do with the read/write-ness of a directory; rather,
> it reflects the system-ness of a folder.
>
> There's no general answer I can see to give, without
> knowing what the security is on your folders or what
> other thing might impede your processes from writing
> files in them. Is it definite that the ERROR_ACCESS_DENIED
> is in fact the result of attempting to write a file into
> one of the newly-created directories?
>
> Can you do something like this (adapt for your own environment):
>
> <code>
> import os, sys
> import subprocess
>
> os.makedirs ("c:/temp/a/b/c")
>
> with open ("c:/temp/a/b/c/test1.txt", "w"):
> pass
>
> subprocess.call ([
> sys.executable,
> "-c",
> "open ('c:/temp/a/b/c/test2.txt', 'w').close ()"
> ])
>
> </code>
>
> ie can the Python process creating the directories,
Yes.
> and a subprocess called from it create a simple file?
No.
> Depending on where you are in the filesystem, it may indeed
> be necessary to be running as administrator. But don't try
> to crack every security nut with an elevated sledgehammer.
If you mean running as admin., those were my sentiments exactly. So,
there isn't something specific I should be doing to assure that my
subproceses can write to directories?
>
> TJG
More information about the Python-list
mailing list