Help replacing os.system call with subprocess call

David Harrison dave.l.harrison at gmail.com
Mon Apr 7 01:36:52 EDT 2008


On 07/04/2008, David Pratt <fairwinds at eastlink.ca> wrote:
> Hi. I am trying to replace a system call with a subprocess call. I have
>  tried subprocess.Popen and subprocess.call with but have not been
>  successful. The command line would be:
>
>  svnadmin dump /my/repository > svndump.db
>
>  This is what I am using currently:
>
>  os.system('svnadmin dump %s > %s' % (svn_dir,
>      os.path.join(backup_dir, 'svndump.db')))
>
>  Many thanks.
>
> --
>  http://mail.python.org/mailman/listinfo/python-list
>

Hey David,

Your probably want something like the following (code untested and off
the cuff ;-) )

Cheers
Dave

---

import subprocess

p = subprocess.Popen(
    [ "svnadmin", "dump" ],
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    close_fds=True
)
(child_stdout, child_stdin) = (p.stdout, p.stdin)

f = open('svndump.db')
f.write(child_stdout.read())
f.close()



More information about the Python-list mailing list