[python] Jak udelat wait u popen.
Jan Martinek
honza na dp.fce.vutbr.cz
Úterý Březen 20 16:06:21 CET 2007
David Michal wrote:
> Zdravim,
>
>
>
> Zapasim s pouzitim os.popen. Potreboval bych vzdy pockat na dokonceni
> subprocessu a pak teprve pracovat s jeho vystupem. V dokumentaci jsme
> nasel ze existuji tridy Popen3 a 4 ktere maji metodu wait(). Ale v
> modulu os je nemuzu najit. Jak si mam zadefinovat neco takoveho:
>
>
>
> a = os.popen('echo ahoj')
>
> a.wait()
>
> print a[1].readlines()
>
>
>
> ?
>
>
>
> Diky,
>
> David
>
Tři z pěti pythonistů doporučují navždy zapomenout na
os.system
os.spawn*
os.popen*
popen2.*
commands.*
a použít raději modul subprocess, který nahrazuje (a doplňuje) všechny
výše uvedené metody.
Můžeš zkusit to napsat takhle:
import subprocess
command = ['echo', 'ahoj']
echo = subprocess.Popen(command, stdout = subprocess.PIPE)
print echo.stdout.readlines()
Kdybys náhodou chtěl opravdu čekat na ukončení externího programu, tak k
tomu slouží metoda wait, např.
echo.wait()
A vůbec - napiš přesně, čeho chceš dosáhnout a jaký externí program
budeš pouštět. Třeba to ani nebude třeba :-)
Jan Martinek
Další informace o konferenci Python