[python] Jak udelat wait u popen.

radek py.cz na svarz.cz
Středa Březen 21 08:58:53 CET 2007


> Nevím proč, ale pod Windows je třeba vždy mít shell=True. Nebo jsem něco
> přehlédl?

Je to kvuli danemu prikazu dir. Ten je totiz vykonavany pomoci cmd,
resp. command.com.

Jinymi slovy, pokud chci pouzit WIN "shellove" prikazy, musim dat shell=True.

Radek


On 3/20/07, Pavel Kosina <geon na post.cz> wrote:
> Jan Martinek napsal(a):
> > import subprocess
> > command = ['echo', 'ahoj']
> > echo = subprocess.Popen(command, stdout = subprocess.PIPE)
> > print echo.stdout.readlines()
> >
> >
>
>
> Nevím proč, ale pod Windows je třeba vždy mít shell=True. Nebo jsem něco
> přehlédl?
>
> import subprocess
> proces=subprocess.Popen('dir', stdout=subprocess.PIPE, shell=True)
> proces.wait()  # pocka na dokonceni
> print proces.stdout.read()
>
> Jinak hází chybu:
>
> Traceback (most recent call last):
>   File "I:\W9725806.py", line 2, in <module>
>     proces=subprocess.Popen('dir', stdout=subprocess.PIPE)
>   File "C:\prg\Python25\lib\subprocess.py", line 593, in __init__
>     errread, errwrite)
>   File "C:\prg\Python25\lib\subprocess.py", line 793, in _execute_child
>     startupinfo)
> WindowsError: [Error 2] SystÚm nem¨×e nalÚzt uvedenř soubor
>
> --
> geon
> Pavel Kosina
>
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>


Další informace o konferenci Python