[python] cteni odpovedi programu ze stdin
Jan Martinek
honza na dp.fce.vutbr.cz
Pondělí Květen 21 18:09:14 CEST 2007
Karel Šrot wrote:
> 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.
Myslel jsi to takhle?
#!/usr/bin/python
# -*- coding:utf-8 -*-
import subprocess, sys
while True:
line = sys.stdin.readline()
if not line: break
lines = line.replace(' ', '\n')
process = subprocess.Popen('cat', stdin = subprocess.PIPE,
stdout = subprocess.PIPE)
process.stdin.write(lines)
process.stdin.close()
for line in process.stdout:
sys.stdout.write(line) #Vypiš na terminál
> 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
>>
Díky za citaci :-)
Další informace o konferenci Python