By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
459,678 Members | 1,288 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 459,678 IT Pros & Developers. It's quick & easy.

subprocess.Popen fails, but os.system works

P: n/a
Hi,

I am using Windows + Python 2.5.

This line of code fails (see error message at the end),

last_line = subprocess.Popen(["D:/release/win.exe 0.5 1000 100 D:/
images/img.ppm out.ppm"], stdout=subprocess.PIPE).communicate()[0]

but using "os.system" works:
os.system('D:/release/win.exe 0.5 1000 100 D:/images/img.ppm out.ppm')

----------
C:/Python25/pythonw.exe -u "D:/run.pyw"
Traceback (most recent call last):
File "D:/run.pyw", line 59, in <module>
process_dir(mydir)
File "D:/run.pyw", line 52, in process_dir
segmentation (dir,f)
File "D:/run.pyw", line 35, in segmentation
last_line = subprocess.Popen(["D:/release/win.exe 0.5 1000 100 D:/
images/img.ppm out.ppm"], 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 22] The filename, directory name, or volume label
syntax is incorrect
-----------

Can anyone tell me why?
Thanks
bahoo

Apr 25 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
In <11**********************@n35g2000prd.googlegroups .com>, bahoo wrote:
This line of code fails (see error message at the end),

last_line = subprocess.Popen(["D:/release/win.exe 0.5 1000 100 D:/
images/img.ppm out.ppm"], stdout=subprocess.PIPE).communicate()[0]

but using "os.system" works:
os.system('D:/release/win.exe 0.5 1000 100 D:/images/img.ppm out.ppm')

----------
C:/Python25/pythonw.exe -u "D:/run.pyw"
Traceback (most recent call last):
File "D:/run.pyw", line 59, in <module>
process_dir(mydir)
File "D:/run.pyw", line 52, in process_dir
segmentation (dir,f)
File "D:/run.pyw", line 35, in segmentation
last_line = subprocess.Popen(["D:/release/win.exe 0.5 1000 100 D:/
images/img.ppm out.ppm"], 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 22] The filename, directory name, or volume label
syntax is incorrect
-----------

Can anyone tell me why?
You are trying to execute a program named::

D:/release/win.exe 0.5 1000 100 D:/images/img.ppm out.ppm

Such a program does not exist on your computer. ;-)

Give `subprocess.Popen()` a list with the program name and the individual
arguments as elements instead.

Ciao,
Marc 'BlackJack' Rintsch
Apr 25 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.