[python] cteni odpovedi programu ze stdin

Karel Šrot karel.do.pekla.zajel na seznam.cz
Pondělí Květen 21 17:31:02 CEST 2007


Co se tyce modulu subprocess a select.select(), nikde jsem nenasel 
priklad, ktery by ukazoval/vysvetloval to, co potrebuji. Muzete nekdo 
znaly napsat kratky skript, ktery treba zavola "cat", bude na vstupu 
nacte radek (raw_input), nahradi mezery novymi radky (to proto, aby tech 
radku bylo vic, tj. nemeli jsme predstavu o jejich poctu), poslal to do 
vstupu "catu", precetl odpoved z vystupu a vypsal ji na obrazovku. Atd., 
porad dokola. Nize je kratky kod, ktery muzete pouzit a upravovat, 
vyuziva popen2 a samozrejme nedela presne to, co bych chtel.:-)
Diky.
Karel


import popen2


(std_out, std_in) = popen2.popen2("cat",0, 't')

data=''

while data<>'quit':
     data = raw_input("zadej radek: ")
     if data<>'quit':
         data = data.replace(' ', '\n')+10*' '
         std_in.write(data[:10])
         data2 = std_out.read(10).strip()
         print data2




Jan Fuchs napsal(a):
> Ahoj,
> již mnohokrát zde proběhlo:
> 
>   http://www.py.cz/pipermail/python/2007-March/005717.html
> 
>   <cite "Jan Martinek">
>   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.
>   </cite>
> 
>          S pozdravem Jan Fuchs
> 
> 21. May (Monday) v 10:47:49 CEST 2007, radek.machulka na gmail.com napsal(a):
>> sez = os.popen(prikaz).readlines()
> 


Další informace o konferenci Python