Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > how to change os.popen4 to subprocess

Reply
Thread Tools

how to change os.popen4 to subprocess

 
 
skyworld
Guest
Posts: n/a
 
      10-27-2012
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?

thanks.
 
Reply With Quote
 
 
 
 
MRAB
Guest
Posts: n/a
 
      10-27-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

 
Reply With Quote
 
 
 
 
Mark Lawrence
Guest
Posts: n/a
 
      10-27-2012
On 27/10/2012 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:


What software are you talking about here, it's certainly not Python
versions as the most up to date are 2.7.3 and 3.3.0?

>
> 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?


If you don't know what the [1] means you've got problems I suggest
you read the tutorial here first
http://docs.python.org/tutorial/index.html then the subprocess module
here http://docs.python.org/library/subpr...ule-subprocess,
specifically
http://docs.python.org/library/subpr...s-replacements

>
> thanks.
>


No problem.

--
Cheers.

Mark Lawrence.

 
Reply With Quote
 
skyworld
Guest
Posts: n/a
 
      10-27-2012
On Oct 27, 11:02*am, MRAB <(E-Mail Removed)> 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
 
Reply With Quote
 
Prasad, Ramit
Guest
Posts: n/a
 
      10-30-2012
Replying to skyworld because I could not find the original message
from MRAB.

skyworld wrote:

> On Oct 27, 11:02*am, MRAB <(E-Mail Removed)> 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 andsuggest 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
> --


I thought the usage of shell=True is usually discouraged? The
subprocess documentation[0] should be helpful to figure it out.
"""
Warning: Invoking the system shell with shell=True can be a security
hazard if combined with untrusted input. See the warning under
Frequently Used Arguments for details.
"""

[0] http://docs.python.org/2/library/subprocess.html


Ramit


This email is confidentialand subject to important disclaimers and
conditions including on offers for the purchase or sale of
securities, accuracy and completeness of information, viruses,
confidentiality, legal privilege, and legal entity disclaimers,
available at http://www.jpmorgan.com/pages/disclosures/email.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Re: How include a large array? Edward A. Falk C Programming 1 04-04-2013 08:07 PM
how to import subprocess into my 'subprocess.py' file hiral Python 2 05-05-2010 12:56 PM
Change the master GridView after detail change? Q. John Chen ASP .Net 0 11-15-2006 05:30 PM
A Paradise DNS address change? What change? There was no change. Tony Neville NZ Computing 7 09-22-2006 01:02 PM
[Subprocess/Windows] subprocess module under Windows 98 Andreas Jung Python 2 11-02-2005 05:41 PM



Advertisments