Trying to run an external program

B

Brant Sears

Hi. I'm new to Python and I am trying to use the latest release (2.5)
on Windows XP.

What I want to do is execute a program and have the results of the
execution assigned to a variable. According to the documentation the
way to do this is as follows:

import commands
x = commands.getstatusoutput('dir')

This should assign "x" to be the output of the command "dir".
However, when I run this (or any other command), x ends up being:

(1, "'{' is not recognized as an internal or external command,
\noperable program or batch file.")

From looking through the documentation, I'm believing that the
implementation of commands.getstatusoutput is actually some multi-
step thing that starts with issuing the bracket character that is
being choked on. This leads me to believe that Python or perhaps just
the commands module is not setup correctly on my computer.

I installed Python using the Python2-5.msi link that I found at:
http://www.python.org/download/releases/2.5/

I left everything the default during installation, so Python was
installed to C:\Python25. The only other thing I did was add this
PATH variable on my computer.

Any ideas on what I might do to troubleshoot this?

Thanks!

Brant Sears
 
M

Matimus

Brant said:
Hi. I'm new to Python and I am trying to use the latest release (2.5)
on Windows XP.

What I want to do is execute a program and have the results of the
execution assigned to a variable. According to the documentation the
way to do this is as follows:

import commands
x = commands.getstatusoutput('dir')

This should assign "x" to be the output of the command "dir".
However, when I run this (or any other command), x ends up being:

(1, "'{' is not recognized as an internal or external command,
\noperable program or batch file.")

From looking through the documentation, I'm believing that the
implementation of commands.getstatusoutput is actually some multi-
step thing that starts with issuing the bracket character that is
being choked on. This leads me to believe that Python or perhaps just
the commands module is not setup correctly on my computer.

I installed Python using the Python2-5.msi link that I found at:
http://www.python.org/download/releases/2.5/

I left everything the default during installation, so Python was
installed to C:\Python25. The only other thing I did was add this
PATH variable on my computer.

Any ideas on what I might do to troubleshoot this?

Thanks!

Brant Sears

commands is a Unix module, hence it will not work in Windows XP. If you
don't need the return code try this:

import os

pipe = os.popen('dir')
x = pipe.read()
# do something with x

-Matt
 
S

Stephan Kuhagen

Brant said:
Any ideas on what I might do to troubleshoot this?

As other stated out, you are using the wrong module. Try:
.... print l
....
--- OUTPUT OF DIR HERE ---
The return value of close is the return value of the command run. If you
need to read stdout and stderr of your command or write to its stdin, use
popen2, popen3, popen4 from the os-module.

Regards
Stephan
 
L

Larry Bates

Brant said:
Hi. I'm new to Python and I am trying to use the latest release (2.5) on
Windows XP.

What I want to do is execute a program and have the results of the
execution assigned to a variable. According to the documentation the way
to do this is as follows:

import commands
x = commands.getstatusoutput('dir')

This should assign "x" to be the output of the command "dir". However,
when I run this (or any other command), x ends up being:

(1, "'{' is not recognized as an internal or external command,\noperable
program or batch file.")

From looking through the documentation, I'm believing that the
implementation of commands.getstatusoutput is actually some multi-step
thing that starts with issuing the bracket character that is being
choked on. This leads me to believe that Python or perhaps just the
commands module is not setup correctly on my computer.

I installed Python using the Python2-5.msi link that I found at:
http://www.python.org/download/releases/2.5/

I left everything the default during installation, so Python was
installed to C:\Python25. The only other thing I did was add this PATH
variable on my computer.

Any ideas on what I might do to troubleshoot this?

Thanks!

Brant Sears

Others have answered your specific question, but on a more general note:

If you want directory information use os.listdir or glob.glob instead.
No reason to shell out to do a dir. If you were using dir as an example,
please disregard.

-Larry Bates
 
L

Larry Bates

Brant said:
Hi. I'm new to Python and I am trying to use the latest release (2.5) on
Windows XP.

What I want to do is execute a program and have the results of the
execution assigned to a variable. According to the documentation the way
to do this is as follows:

import commands
x = commands.getstatusoutput('dir')

This should assign "x" to be the output of the command "dir". However,
when I run this (or any other command), x ends up being:

(1, "'{' is not recognized as an internal or external command,\noperable
program or batch file.")

From looking through the documentation, I'm believing that the
implementation of commands.getstatusoutput is actually some multi-step
thing that starts with issuing the bracket character that is being
choked on. This leads me to believe that Python or perhaps just the
commands module is not setup correctly on my computer.

I installed Python using the Python2-5.msi link that I found at:
http://www.python.org/download/releases/2.5/

I left everything the default during installation, so Python was
installed to C:\Python25. The only other thing I did was add this PATH
variable on my computer.

Any ideas on what I might do to troubleshoot this?

Thanks!

Brant Sears

Others have answered your specific question, but on a more general note:

If you want directory information use os.listdir or glob.glob instead.
No reason to shell out to do a dir. If you were using dir as an example,
please disregard.

-Larry Bates
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top