how to change os.popen4 to subprocess

skyworld chenyong20000 at gmail.com
Sat Oct 27 02:30:52 EDT 2012


On Oct 27, 11:02 am, MRAB <pyt... at mrabarnett.plus.com> wrote:
> On 2012-10-27 03:28, skyworld wrote:> Hi,
>
> > I'm new to python and I'm trying to porting some scripts from v0.96 to
> > v2.0.1. A piece of code is like this:
>
> > cmd_h = os.popen4(env['SYSCMDLINE'])[1]
>
> > the system indicates the popen4 is deprecated and suggest to use
> > subprocess. Can anybody tell me how to use subprocess in this case?
> > and what does "[1]" here means?
>
> os.popen4 returns a tuple of (child_stdin, child_stdout_and_stderr).
> The [1] gets the child_stdout_and_stderr member.
>
> Using the subprocess module:
>
> # Untested!
> cmd_h = subprocess.Popen(env['SYSCMDLINE'], stdout=subprocess.PIPE,
> stderr=subprocess.STDOUT, shell=True).stdout
>
> Explanation:
>
> The command line: env['SYSCMDLINE']
>
> Return stdout: stdout=subprocess.PIPE
>
> stderr should be combined with stdout: stderr=subprocess.STDOUT
>
> Let the shell parse the command line: shell=True

thanks



More information about the Python-list mailing list