newbie: popen question

Sean DiZazzo half.italian at
Thu May 28 04:11:17 EDT 2009

On May 27, 6:10 pm, thebiggestbangthe... at wrote:
> hello everyone :-),
>                          I am a newbie to python. I am trying to run a
> bash script from within a python program. I would greatly appreciate
> any pointers/comments about how to get around the problem I am facing.
> I want to run  bash script: from within a python program.
> needs to be run like so from the command line
> [code]
> $ sudo arg1 arg2
> [/code]
> I read up on some documentation but am not very clear about how to use
> popen. I want to relegate the shell to a background process, but it
> needs to accept the sudo passwd too!
> I have tried
> [code]
> p = subprocess.Popen(['/bin/bash', 'sudo '+mypath+' '+arg1+'
> '+arg2],
>                                     stdout=subprocess.PIPE,
>                                     stderr=subprocess.STDOUT)
> [/code]
> I tried some code from
> subprocess-popen-always-return
> nothing really happens when this executes, the PIPE option pshes it to
> the background and I can't push in the sudo passwd. Can someone please
> give me an idea of how to go about this.
> To recap, I want to run a shell script, which needs to be started with
> sudo, and then push it into the background.
> Thanks,
> -A

Your best bet is to make sudo not ask for a password.  :)  If you
don't have the rights, then you can use pexpect to do what you want to

See the second example on that page.

child = pexpect.spawn('scp foo myname at')
child.expect ('Password:')
child.sendline (mypassword)


More information about the Python-list mailing list