subprocess.Popen fails, but os.system works
Marc 'BlackJack' Rintsch
bj_666 at gmx.net
Wed Apr 25 01:21:59 EDT 2007
In <1177473554.399696.236450 at 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
More information about the Python-list
mailing list