how to change os.popen4 to subprocess
MRAB
python at mrabarnett.plus.com
Fri Oct 26 23:02:06 EDT 2012
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
More information about the Python-list
mailing list