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


Groups > comp.lang.python > #18310

Re: Can't write to a directory made w/ os.makedirs

Date 2012-01-02 03:43 +0000
From MRAB <python@mrabarnett.plus.com>
Subject Re: Can't write to a directory made w/ os.makedirs
References <50693cc2-93c9-481d-9fb1-42312e69b2d9@c42g2000prb.googlegroups.com> <mailman.4289.1325410678.27778.python-list@python.org> <91830ffb-00d9-4fd1-b771-ad59374334ec@n22g2000prh.googlegroups.com> <mailman.4292.1325430363.27778.python-list@python.org> <6348b96c-f7a9-4ca6-a704-c90d25f07788@y25g2000prg.googlegroups.com>
Newsgroups comp.lang.python
Message-ID <mailman.4301.1325476003.27778.python-list@python.org> (permalink)

Show all headers | View raw


On 02/01/2012 03:14, David Goldsmith wrote:
> On Jan 1, 7:05 am, Tim Golden<m...@timgolden.me.uk>  wrote:
>>  On 01/01/2012 12:05, David Goldsmith wrote:
>>    >>  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?
>>
>>  In the general case, no. By default, a subprocess will have
>>  the same security context as its parent. The exception is
>>  where the parent (the Python processing invoking subprocess.call
>>  in this example) is already impersonating a different user;
>>  in that case, the subprocess will inherit its grandparent's
>>  context.
>>
>>  But unless you're doing something very deliberate here then
>>  I doubt if that's biting you.
>>
>>  Can I ask: are you absolutely certain that the processes
>>  you're calling are doing what you think they are and failing
>>  where you think they're failing?
>>
>>  TJG
>
> I'm a mathematician: the only thing I'm absolutely certain of is
> nothing.
>
> Here's my script, in case that helps:
>
> import os
> import sys
> import stat
> import os.path as op
> import subprocess as sub
> from os import remove
> from os import listdir as ls
> from os import makedirs as mkdir
>
> def doFlac2Mp3(arg, d, fl):
>      if '.flac' in [f[-5:] for f in fl]:
>          newD = d.replace('FLACS', 'MP3s')
>          mkdir(newD)
>          for f in fl:
>              if f[-5:]=='.flac':
>                  root = f.replace('.flac', '')
>                  cmd = ['"C:\\Program Files (x86)\\aTunes\\win_tools\
> \flac.exe" -d ' +
>                         '--output-prefix=' + newD + '\\', f]
>                  res = sub.call(cmd)#, env={'PATH': os.defpath})
>                  if not res:
>                      cmd = ['"C:\\Program Files (x86)\\aTunes\\win_tools
> \\lame.exe" -h',
>                              newD + root + '.wav',  newD + root +
> '.mp3']
>                      res = sub.call(cmd)#, env={'PATH': os.defpath})
>                      if not res:
>                          rf = newD + root + '.wav'
>                          remove(rf)
>
> top=sys.argv[1]
> op.walk(top, doFlac2Mp3, None)

I think that if the command line should be something like:

"C:\Program Files (x86)\aTunes\win_tools\flac.exe" -d 
--output-prefix=FOO\ BAR

then the cmd should be something like:

cmd = ['C:\\Program Files (x86)\\aTunes\\win_tools\\flac.exe', '-d', 
'--output-prefix="' + newD + '\\"', f]

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


Thread

[Windows 7, Python 2.6] Can't write to a directory made w/ os.makedirs OlyDLG <d.l.goldsmith@gmail.com> - 2011-12-31 14:13 -0800
  Re: [Windows 7, Python 2.6] Can't write to a directory made w/ os.makedirs Tim Golden <mail@timgolden.me.uk> - 2012-01-01 09:37 +0000
    Re: Can't write to a directory made w/ os.makedirs David Goldsmith <eulergaussriemann@gmail.com> - 2012-01-01 04:05 -0800
      Re: Can't write to a directory made w/ os.makedirs Tim Golden <mail@timgolden.me.uk> - 2012-01-01 15:05 +0000
        Re: Can't write to a directory made w/ os.makedirs David Goldsmith <eulergaussriemann@gmail.com> - 2012-01-01 19:14 -0800
          Re: Can't write to a directory made w/ os.makedirs MRAB <python@mrabarnett.plus.com> - 2012-01-02 03:43 +0000
            Re: Can't write to a directory made w/ os.makedirs David Goldsmith <eulergaussriemann@gmail.com> - 2012-01-03 07:17 -0800
          Re: Can't write to a directory made w/ os.makedirs Tim Golden <mail@timgolden.me.uk> - 2012-01-02 11:11 +0000
          Re: Can't write to a directory made w/ os.makedirs Dave Angel <d@davea.name> - 2012-01-02 09:09 -0500
            Re: Can't write to a directory made w/ os.makedirs David Goldsmith <eulergaussriemann@gmail.com> - 2012-01-02 18:34 -0800

csiph-web