<br><font size=2 face="sans-serif">Ja by som to urobil tak, ako ked volam
prikazy os.</font>
<br>
<br><font size=2 face="sans-serif">1.</font><font size=2 face="Courier New">
import os </font>
<br>
<br><font size=2 face="sans-serif">2. do premennej callpgm vyskladat commandline
s volanim programu extern_pgm</font>
<br><font size=2 face="sans-serif">napr: </font>
<br><font size=2 face="Courier New">callpgm="extern_pgm "+<i>parm</i>+"
> "+<i>vysledok_volania</i></font><font size=2 face="sans-serif"><br>
kde:</font>
<br><font size=2 face="sans-serif"> premenna <i>parm</i> obsahuje
parametre programu</font>
<br><font size=2 face="sans-serif"> premenna <i>vysledok_volania</i>
nazov suboru do ktoreho presmerujes vystup.</font>
<br>
<br><font size=2 face="sans-serif">3. </font><font size=2 face="Courier New">rc=os.system(callpgm)</font>
<br><font size=2 face="Courier New">if rc ==0:</font>
<br><font size=2 face="Courier New"> volanie programu bolo
uspesne</font>
<br><font size=2 face="Courier New">else:</font>
<br><font size=2 face="Courier New"> pri zavolani programu extern_pgmnastala
chyba</font>
<br>
<br><font size=2 face="sans-serif">4. potom mozes spracovat vystupny subor
<i>vysledok_volania</i></font>
<br>
<br><font size=2 face="sans-serif">Mozno existuje aj lepsia cesta....</font>
<br>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Karel Srot <karel.do.pekla.zajel@seznam.cz></b>
</font>
<br><font size=1 face="sans-serif">Sent by: tutor-bounces@py.cz</font>
<p><font size=1 face="sans-serif">10.10.2006 17:54</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Konference Tutor portalu PyCZ <tutor@py.cz></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td valign=top><font size=1 face="sans-serif">Konference Tutor portalu
PyCZ <tutor@py.cz></font>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td valign=top>
<tr>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td valign=top><font size=1 face="sans-serif">Re: [Tutor PyCZ] spousteni
externich programu a vstupu a vystupy</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2><tt>Asi jsem to nepochopil. Tim sys.stdout mohu napriklad
nastavit, aby <br>
standardni vystup meho programu sel do souboru. Ale ja chci zpracovavat
<br>
vystup externiho programu, ktery z programu teprve poustim. To jde takto
<br>
take? A jak tedy nastavim vstup/vystup pro externi program?<br>
<br>
Karel<br>
<br>
Jiří Popek napsal(a):<br>
> k tomu slouzi<br>
><br>
> import sys<br>
> sys.stdout<br>
> sys.stderr<br>
> sys.stdin<br>
><br>
> temto objektum muzes priradit napr. StringIO objekt nebo nejaky soubor
<br>
> a tvuj program ktery spoustis jej bude pouzivat jako klasicky <br>
> vystup/vstup. Na konci nezapomen nastavit tyto hodnoty na puvodni.<br>
> J.<br>
><br>
> On 10/10/06, *Karel Srot* <karel.do.pekla.zajel@seznam.cz <br>
> <mailto:karel.do.pekla.zajel@seznam.cz>> wrote:<br>
><br>
> Zdravim vsechny,<br>
> mam nasledujici dotaz. zkousel jsem najit odpoved v
nejake dokumentaci<br>
> ci prikladech, ale jsem z toho tulpachovej.<br>
><br>
> Mam externi program. Ten chci z pythonu spustit, posilat
mu neco na<br>
> vstup a prebirat vystup. Zatim jsem pouzil funkci popen4.
Vim, ze<br>
> vhodnejsi by bylo pouzit modul subprocess, ale v tom
se moc<br>
> neorientuju.<br>
> Navic mi jde o to, najit funkcni reseni a pochopit
ho, takze klidne<br>
> piste reseni pomoci subprocess.<br>
><br>
> Problem je v tom, ze ten program ne vzdy da vystup.
Takze ja mu muzu<br>
> poslat data a on nemusi vubec odpoved. Upravit tento
program nelze,<br>
> proste to tak funguje. Jak zjistim, ze program neco
poslal na vystup?<br>
> Nelze pouzit readline ci read, protoze to zpusobi cekani
na konec<br>
> radku/souboru. Jak tedy provest kontrolu toho, ze muzu
neco cist a<br>
> pak<br>
> to teprve nacist.<br>
><br>
> Dalsi dotaz je podobny. Kdybych presmeroval vystup externiho<br>
> programu do<br>
> souboru a v pythonu pak z toho souboru cetl, tak fungovalo
by to? Tedy<br>
> ja bych programu neco poslal, on by to vypsal do souboru
a ja bych<br>
> ten<br>
> soubor prubezne cetl? Resp. jak bych ho mel cist?<br>
><br>
> Diky za odpoved, snad jsem to napsal srozumitelne.<br>
><br>
> Karel<br>
> _______________________________________________<br>
> Tutor mailing list<br>
> Tutor@py.cz <mailto:Tutor@py.cz><br>
> http://www.py.cz/mailman/listinfo/tutor<br>
><br>
><br>
> ------------------------------------------------------------------------<br>
><br>
> _______________________________________________<br>
> Tutor mailing list<br>
> Tutor@py.cz<br>
> http://www.py.cz/mailman/listinfo/tutor<br>
<br>
_______________________________________________<br>
Tutor mailing list<br>
Tutor@py.cz<br>
http://www.py.cz/mailman/listinfo/tutor<br>
</tt></font>
<br><font size=2 face="sans-serif"><br>
Mgr. Ing. Roman MIKLÓ© <br>
Prvá stavebná sporiteµňa a.s. <br>
Bajkalská 30, P. O. Box 48 <br>
829 48 Bratislava 25 <br>
Tel.: +421/ 2 / 582 31 174 <br>
Fax: +421/ 2 / 582 31 109 <br>
</font>