On Oct 27, 11:02 am, MRAB <pyt...@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 -- http://mail.python.org/mailman/listinfo/python-list