Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > subprocess.popen question

Reply
Thread Tools

subprocess.popen question

 
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      06-20-2007
I am trying to modify a programming example and I am coming up with
two problems... first is that I can't seem to pass along the
arguments to the external command (I have been able to do that with
the old module and cmd is the command I wish to try) all the output
seems to be returned as one line (at least when I run the program in
spe).

import subprocess
from os import system
cmd = """gawk -f altertime.awk -v time_offset=4 -v
outfile="testdat.sco" "i1.sco" """
#subprocess.Popen.
last_line = subprocess.Popen(['gawk.exe'],
stdout=subprocess.PIPE).communicate()[0]
xx = 0
for line in last_line:
xx = xx + 1
if xx < 2:
print line
print str(xx)

 
Reply With Quote
 
 
 
 
Gabriel Genellina
Guest
Posts: n/a
 
      06-20-2007
En Wed, 20 Jun 2007 12:27:47 -0300, http://www.velocityreviews.com/forums/(E-Mail Removed)
<(E-Mail Removed)> escribió:

> I am trying to modify a programming example and I am coming up with
> two problems... first is that I can't seem to pass along the
> arguments to the external command (I have been able to do that with
> the old module and cmd is the command I wish to try) all the output
> seems to be returned as one line (at least when I run the program in
> spe).
>
> import subprocess
> from os import system
> cmd = """gawk -f altertime.awk -v time_offset=4 -v
> outfile="testdat.sco" "i1.sco" """
> #subprocess.Popen.
> last_line = subprocess.Popen(['gawk.exe'],
> stdout=subprocess.PIPE).communicate()[0]


You build what appears to be the desired command line, but execute
gawk.exe instead.
Better split the arguments beforehand:
cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
"outfile=testdat.sco", "i1.sco"]
Now, what do you want to do with the output? Printing it line by line?
output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
lines = output.splitlines()
for line in lines:
print line

--
Gabriel Genellina

 
Reply With Quote
 
 
 
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      06-20-2007
On Jun 20, 1:46 pm, "Gabriel Genellina" <(E-Mail Removed)>
wrote:
> En Wed, 20 Jun 2007 12:27:47 -0300, (E-Mail Removed)
> <(E-Mail Removed)> escribió:
>
> > I am trying to modify a programming example and I am coming up with
> > two problems... first is that I can't seem to pass along the
> > arguments to the external command (I have been able to do that with
> > the old module and cmd is the command I wish to try) all the output
> > seems to be returned as one line (at least when I run the program in
> > spe).

>
> > import subprocess
> > from os import system
> > cmd = """gawk -f altertime.awk -v time_offset=4 -v
> > outfile="testdat.sco" "i1.sco" """
> > #subprocess.Popen.
> > last_line = subprocess.Popen(['gawk.exe'],
> > stdout=subprocess.PIPE).communicate()[0]

>
> You build what appears to be the desired command line, but execute
> gawk.exe instead.
> Better split the arguments beforehand:
> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
> "outfile=testdat.sco", "i1.sco"]
> Now, what do you want to do with the output? Printing it line by line?
> output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
> lines = output.splitlines()
> for line in lines:
> print line
>
> --
> Gabriel Genellina


I had one test where I had cmd in place of gawk and one everything was
in place of gawk.. I haven't tried what you have listed yet (I am
getting ready to go to work so may have to wait until tommorow to try
it) THanks for the help

 
Reply With Quote
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      06-20-2007
On Jun 20, 1:46 pm, "Gabriel Genellina" <(E-Mail Removed)>
wrote:
> En Wed, 20 Jun 2007 12:27:47 -0300, (E-Mail Removed)
> <(E-Mail Removed)> escribió:
>
> > I am trying to modify a programming example and I am coming up with
> > two problems... first is that I can't seem to pass along the
> > arguments to the external command (I have been able to do that with
> > the old module and cmd is the command I wish to try) all the output
> > seems to be returned as one line (at least when I run the program in
> > spe).

>
> > import subprocess
> > from os import system
> > cmd = """gawk -f altertime.awk -v time_offset=4 -v
> > outfile="testdat.sco" "i1.sco" """
> > #subprocess.Popen.
> > last_line = subprocess.Popen(['gawk.exe'],
> > stdout=subprocess.PIPE).communicate()[0]

>
> You build what appears to be the desired command line, but execute
> gawk.exe instead.
> Better split the arguments beforehand:
> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
> "outfile=testdat.sco", "i1.sco"]
> Now, what do you want to do with the output? Printing it line by line?
> output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
> lines = output.splitlines()
> for line in lines:
> print line
>
> --
> Gabriel Genellina


C:\dex_tracker\pipe1.py
Traceback (most recent call last):
File "C:\dex_tracker\pipe1.py", line 14, in
last_line = subprocess.Popen([cmd],
stdout=subprocess.PIPE).communicate()[0]
File "C:\Python25\lib\subprocess.py", line 593, in __init__
errread, errwrite)
File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
Script terminated.

I can write it out as a batch file and then run it but that is a messy
hack..

 
Reply With Quote
 
Gabriel Genellina
Guest
Posts: n/a
 
      06-21-2007
En Wed, 20 Jun 2007 20:02:52 -0300, (E-Mail Removed)
<(E-Mail Removed)> escribió:

> On Jun 20, 1:46 pm, "Gabriel Genellina" <(E-Mail Removed)>
> wrote:
>>
>> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
>> "outfile=testdat.sco", "i1.sco"]
>> Now, what do you want to do with the output? Printing it line by line?
>> output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
>> lines = output.splitlines()
>> for line in lines:
>> print line
>>

>
> C:\dex_tracker\pipe1.py
> Traceback (most recent call last):
> File "C:\dex_tracker\pipe1.py", line 14, in
> last_line = subprocess.Popen([cmd],
> stdout=subprocess.PIPE).communicate()[0]
> File "C:\Python25\lib\subprocess.py", line 593, in __init__
> errread, errwrite)
> File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
> startupinfo)
> WindowsError: [Error 2] The system cannot find the file specified
> Script terminated.
>
> I can write it out as a batch file and then run it but that is a messy
> hack..


If cmd is a list of arguments, like the example above, you should use
subprocess.Popen(cmd,...) (like the example above, too).

--
Gabriel Genellina

 
Reply With Quote
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      06-21-2007
On Jun 20, 7:50 pm, "Gabriel Genellina" <(E-Mail Removed)>
wrote:
> En Wed, 20 Jun 2007 20:02:52 -0300, (E-Mail Removed)
> <(E-Mail Removed)> escribió:
>
>
>
>
>
> > On Jun 20, 1:46 pm, "Gabriel Genellina" <(E-Mail Removed)>
> > wrote:

>
> >> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
> >> "outfile=testdat.sco", "i1.sco"]
> >> Now, what do you want to do with the output? Printing it line by line?
> >> output = subprocess.Popen(cmd, stdout=subprocess.PIPE).communicate()[0]
> >> lines = output.splitlines()
> >> for line in lines:
> >> print line

>
> > C:\dex_tracker\pipe1.py
> > Traceback (most recent call last):
> > File "C:\dex_tracker\pipe1.py", line 14, in
> > last_line = subprocess.Popen([cmd],
> > stdout=subprocess.PIPE).communicate()[0]
> > File "C:\Python25\lib\subprocess.py", line 593, in __init__
> > errread, errwrite)
> > File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
> > startupinfo)
> > WindowsError: [Error 2] The system cannot find the file specified
> > Script terminated.

>
> > I can write it out as a batch file and then run it but that is a messy
> > hack..

>
> If cmd is a list of arguments, like the example above, you should use
> subprocess.Popen(cmd,...) (like the example above, too).
>
> --
> Gabriel Genellina- Hide quoted text -
>
> - Show quoted text -



I had cut and pasted the example in to get that error... could it be
a problem with ms windows??? (I am at a library computer befour work
so that ended my testing)

 
Reply With Quote
 
Gabriel Genellina
Guest
Posts: n/a
 
      06-21-2007
En Wed, 20 Jun 2007 22:28:06 -0300, (E-Mail Removed)
<(E-Mail Removed)> escribió:
> On Jun 20, 7:50 pm, "Gabriel Genellina" <(E-Mail Removed)>
> wrote:
>> En Wed, 20 Jun 2007 20:02:52 -0300, (E-Mail Removed)
>> <(E-Mail Removed)> escribió:
>> > On Jun 20, 1:46 pm, "Gabriel Genellina" <(E-Mail Removed)>
>> > wrote:

>>
>> >> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
>> >> "outfile=testdat.sco", "i1.sco"]
>> >> Now, what do you want to do with the output? Printing it line by

>> line?
>> >> output = subprocess.Popen(cmd,

>> stdout=subprocess.PIPE).communicate()[0]
>> >> lines = output.splitlines()
>> >> for line in lines:
>> >> print line

>>
>> > C:\dex_tracker\pipe1.py
>> > Traceback (most recent call last):
>> > File "C:\dex_tracker\pipe1.py", line 14, in
>> > last_line = subprocess.Popen([cmd],
>> > stdout=subprocess.PIPE).communicate()[0]
>> > File "C:\Python25\lib\subprocess.py", line 593, in __init__
>> > errread, errwrite)
>> > File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
>> > startupinfo)
>> > WindowsError: [Error 2] The system cannot find the file specified
>> > Script terminated.

>>
>> > I can write it out as a batch file and then run it but that is a messy
>> > hack..

>>
>> If cmd is a list of arguments, like the example above, you should use
>> subprocess.Popen(cmd,...) (like the example above, too).

>
> I had cut and pasted the example in to get that error... could it be
> a problem with ms windows??? (I am at a library computer befour work
> so that ended my testing)


Note the call to subprocess.Popen - is the first argument [cmd] or cmd?
What do you get with print repr(cmd)?
Do you have gawk installed on that machine too?

--
Gabriel Genellina

 
Reply With Quote
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      06-22-2007
On Jun 21, 1:22 am, "Gabriel Genellina" <(E-Mail Removed)>
wrote:
> En Wed, 20 Jun 2007 22:28:06 -0300, (E-Mail Removed)
> <(E-Mail Removed)> escribió:
>
>
>
>
>
> > On Jun 20, 7:50 pm, "Gabriel Genellina" <(E-Mail Removed)>
> > wrote:
> >> En Wed, 20 Jun 2007 20:02:52 -0300, (E-Mail Removed)
> >> <(E-Mail Removed)> escribió:
> >> > On Jun 20, 1:46 pm, "Gabriel Genellina" <(E-Mail Removed)>
> >> > wrote:

>
> >> >> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
> >> >> "outfile=testdat.sco", "i1.sco"]
> >> >> Now, what do you want to do with the output? Printing it line by
> >> line?
> >> >> output = subprocess.Popen(cmd,
> >> stdout=subprocess.PIPE).communicate()[0]
> >> >> lines = output.splitlines()
> >> >> for line in lines:
> >> >> print line

>
> >> > C:\dex_tracker\pipe1.py
> >> > Traceback (most recent call last):
> >> > File "C:\dex_tracker\pipe1.py", line 14, in
> >> > last_line = subprocess.Popen([cmd],
> >> > stdout=subprocess.PIPE).communicate()[0]
> >> > File "C:\Python25\lib\subprocess.py", line 593, in __init__
> >> > errread, errwrite)
> >> > File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
> >> > startupinfo)
> >> > WindowsError: [Error 2] The system cannot find the file specified
> >> > Script terminated.

>
> >> > I can write it out as a batch file and then run it but that is a messy
> >> > hack..

>
> >> If cmd is a list of arguments, like the example above, you should use
> >> subprocess.Popen(cmd,...) (like the example above, too).

>
> > I had cut and pasted the example in to get that error... could it be
> > a problem with ms windows??? (I am at a library computer befour work
> > so that ended my testing)

>
> Note the call to subprocess.Popen- is the first argument [cmd] or cmd?
> What do you get with print repr(cmd)?
> Do you have gawk installed on that machine too?
>
> --
> Gabriel Genellina- Hide quoted text -
>
> - Show quoted text -


gawk is installed.. I do fine when I just call gawk I get all the
options to use with it but the minute I try to use the options with it
I have problems. I have done it with batch files but then I would
have to write out a batch file and then run the batch file. seems
like more work than I should have to do to use options with a command
line program.. I have done this in other cases with os.startfile and
other cases and would like to fix it.

 
Reply With Quote
 
Gabriel Genellina
Guest
Posts: n/a
 
      06-22-2007
En Fri, 22 Jun 2007 01:05:36 -0300, (E-Mail Removed)
<(E-Mail Removed)> escribió:

>> >> >> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
>> >> >> "outfile=testdat.sco", "i1.sco"]
>> >> >> output = subprocess.Popen(cmd,
>> >> stdout=subprocess.PIPE).communicate()[0]
>> >> >> lines = output.splitlines()
>> >> >> for line in lines:
>> >> >> print line

>>
>> >> > C:\dex_tracker\pipe1.py
>> >> > Traceback (most recent call last):
>> >> > File "C:\dex_tracker\pipe1.py", line 14, in
>> >> > last_line = subprocess.Popen([cmd],
>> >> > stdout=subprocess.PIPE).communicate()[0]
>> >> > File "C:\Python25\lib\subprocess.py", line 593, in __init__
>> >> > errread, errwrite)
>> >> > File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
>> >> > startupinfo)
>> >> > WindowsError: [Error 2] The system cannot find the file specified
>> >> > Script terminated.

>>
>> >> > I can write it out as a batch file and then run it but that is a

>> messy
>> >> > hack..

>>
>> >> If cmd is a list of arguments, like the example above, you should use
>> >> subprocess.Popen(cmd,...) (like the example above, too).

>>
>> > I had cut and pasted the example in to get that error... could it be
>> > a problem with ms windows??? (I am at a library computer befour work
>> > so that ended my testing)

>>
>> Note the call to subprocess.Popen- is the first argument [cmd] or cmd?
>> What do you get with print repr(cmd)?
>> Do you have gawk installed on that machine too?

>
> gawk is installed.. I do fine when I just call gawk I get all the
> options to use with it but the minute I try to use the options with it
> I have problems. I have done it with batch files but then I would
> have to write out a batch file and then run the batch file. seems
> like more work than I should have to do to use options with a command
> line program.. I have done this in other cases with os.startfile and
> other cases and would like to fix it.


Ok, but please check *what* are the arguments to Popen. If cmd is a *list*
as shown on the first quoted line on this message, you should call
subprocess.Popen(cmd, ...) as shown on the third line on this message, but
your traceback shows that you are using Popen([cmd], ...)
Can you see the difference?

--
Gabriel Genellina

 
Reply With Quote
 
Eric_Dexter@msn.com
Guest
Posts: n/a
 
      06-22-2007
On Jun 22, 12:10 am, "Gabriel Genellina" <(E-Mail Removed)>
wrote:
> En Fri, 22 Jun 2007 01:05:36 -0300, (E-Mail Removed)
> <(E-Mail Removed)> escribió:
>
>
>
>
>
> >> >> >> cmd = ["gawk", "-f", "altertime.awk", "-v", "time_offset=4", "-v",
> >> >> >> "outfile=testdat.sco", "i1.sco"]
> >> >> >> output = subprocess.Popen(cmd,
> >> >> stdout=subprocess.PIPE).communicate()[0]
> >> >> >> lines = output.splitlines()
> >> >> >> for line in lines:
> >> >> >> print line

>
> >> >> > C:\dex_tracker\pipe1.py
> >> >> > Traceback (most recent call last):
> >> >> > File "C:\dex_tracker\pipe1.py", line 14, in
> >> >> > last_line = subprocess.Popen([cmd],
> >> >> > stdout=subprocess.PIPE).communicate()[0]
> >> >> > File "C:\Python25\lib\subprocess.py", line 593, in __init__
> >> >> > errread, errwrite)
> >> >> > File "C:\Python25\lib\subprocess.py", line 793, in _execute_child
> >> >> > startupinfo)
> >> >> > WindowsError: [Error 2] The system cannot find the file specified
> >> >> > Script terminated.

>
> >> >> > I can write it out as a batch file and then run it but that is a
> >> messy
> >> >> > hack..

>
> >> >> If cmd is a list of arguments, like the example above, you should use
> >> >> subprocess.Popen(cmd,...) (like the example above, too).

>
> >> > I had cut and pasted the example in to get that error... could it be
> >> > a problem with ms windows??? (I am at a library computer befour work
> >> > so that ended my testing)

>
> >> Note the call to subprocess.Popen- is the first argument [cmd] or cmd?
> >> What do you get with print repr(cmd)?
> >> Do you have gawk installed on that machine too?

>
> > gawk is installed.. I do fine when I just call gawk I get all the
> > options to use with it but the minute I try to use the options with it
> > I have problems. I have done it with batch files but then I would
> > have to write out a batch file and then run the batch file. seems
> > like more work than I should have to do to use options with a command
> > line program.. I have done this in other cases with os.startfile and
> > other cases and would like to fix it.

>
> Ok, but please check *what* are the arguments toPopen. If cmd is a *list*
> as shown on the first quoted line on this message, you should call
> subprocess.Popen(cmd, ...) as shown on the third line on this message, but
> your traceback shows that you are usingPopen([cmd], ...)
> Can you see the difference?
>
> --
> Gabriel Genellina- Hide quoted text -
>
> - Show quoted text -


I seemed to have it working sorta when I run it and save the results I
am noticing that in spe it spaces correctly but when I save it to a
file I can open it in wordpad there is only one line. when I open in
up in WinXound (A csound editor) it is double spaced. if I do it in a
batch file the output file is spaced correctly.. when I do splitlines
it is giving me one charecter down the page as output.. Do I need to
do something or can I do something to put an end of line charecter in
the output??

 
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
question row filter (more of sql query question) =?Utf-8?B?YW5kcmV3MDA3?= ASP .Net 2 10-06-2005 01:07 PM
Quick Question - Newby Question =?Utf-8?B?UnlhbiBTbWl0aA==?= ASP .Net 4 02-16-2005 11:59 AM
Question on Transcender Question :-) eddiec MCSE 6 05-20-2004 06:59 AM
Question re: features of the 831 router (also a 924 question) Wayne Cisco 0 03-02-2004 07:57 PM
Syntax Question - Novice Question sean ASP .Net 1 10-20-2003 12:18 PM



Advertisments