<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=&quot;extern_pgm &quot;+<i>parm</i>+&quot;
&gt; &quot;+<i>vysledok_volania</i></font><font size=2 face="sans-serif"><br>
kde:</font>
<br><font size=2 face="sans-serif">&nbsp; premenna <i>parm</i> obsahuje
parametre programu</font>
<br><font size=2 face="sans-serif">&nbsp; 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">&nbsp; &nbsp;volanie programu bolo
uspesne</font>
<br><font size=2 face="Courier New">else:</font>
<br><font size=2 face="Courier New">&nbsp; 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 &lt;karel.do.pekla.zajel@seznam.cz&gt;</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 &lt;tutor@py.cz&gt;</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 &lt;tutor@py.cz&gt;</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>
&gt; k tomu slouzi<br>
&gt;<br>
&gt; import sys<br>
&gt; sys.stdout<br>
&gt; sys.stderr<br>
&gt; sys.stdin<br>
&gt;<br>
&gt; temto objektum muzes priradit napr. StringIO objekt nebo nejaky soubor
<br>
&gt; a tvuj program ktery spoustis jej bude pouzivat jako klasicky <br>
&gt; vystup/vstup. Na konci nezapomen nastavit tyto hodnoty na puvodni.<br>
&gt; J.<br>
&gt;<br>
&gt; On 10/10/06, *Karel Srot* &lt;karel.do.pekla.zajel@seznam.cz <br>
&gt; &lt;mailto:karel.do.pekla.zajel@seznam.cz&gt;&gt; wrote:<br>
&gt;<br>
&gt; &nbsp; &nbsp; Zdravim vsechny,<br>
&gt; &nbsp; &nbsp; mam nasledujici dotaz. zkousel jsem najit odpoved v
nejake dokumentaci<br>
&gt; &nbsp; &nbsp; ci prikladech, ale jsem z toho tulpachovej.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Mam externi program. Ten chci z pythonu spustit, posilat
mu neco na<br>
&gt; &nbsp; &nbsp; vstup a prebirat vystup. Zatim jsem pouzil funkci popen4.
Vim, ze<br>
&gt; &nbsp; &nbsp; vhodnejsi by bylo pouzit modul subprocess, ale v tom
se moc<br>
&gt; &nbsp; &nbsp; neorientuju.<br>
&gt; &nbsp; &nbsp; &nbsp; Navic mi jde o to, najit funkcni reseni a pochopit
ho, takze klidne<br>
&gt; &nbsp; &nbsp; piste reseni pomoci subprocess.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Problem je v tom, ze ten program ne vzdy da vystup.
Takze ja mu muzu<br>
&gt; &nbsp; &nbsp; poslat data a on nemusi vubec odpoved. Upravit tento
program nelze,<br>
&gt; &nbsp; &nbsp; proste to tak funguje. Jak zjistim, ze program neco
poslal na vystup?<br>
&gt; &nbsp; &nbsp; Nelze pouzit readline ci read, protoze to zpusobi cekani
na konec<br>
&gt; &nbsp; &nbsp; radku/souboru. Jak tedy provest kontrolu toho, ze muzu
neco cist a<br>
&gt; &nbsp; &nbsp; pak<br>
&gt; &nbsp; &nbsp; to teprve nacist.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Dalsi dotaz je podobny. Kdybych presmeroval vystup externiho<br>
&gt; &nbsp; &nbsp; programu do<br>
&gt; &nbsp; &nbsp; souboru a v pythonu pak z toho souboru cetl, tak fungovalo
by to? Tedy<br>
&gt; &nbsp; &nbsp; ja bych programu neco poslal, on by to vypsal do souboru
a ja bych<br>
&gt; &nbsp; &nbsp; ten<br>
&gt; &nbsp; &nbsp; soubor prubezne cetl? Resp. jak bych ho mel cist?<br>
&gt;<br>
&gt; &nbsp; &nbsp; Diky za odpoved, snad jsem to napsal srozumitelne.<br>
&gt;<br>
&gt; &nbsp; &nbsp; Karel<br>
&gt; &nbsp; &nbsp; _______________________________________________<br>
&gt; &nbsp; &nbsp; Tutor mailing list<br>
&gt; &nbsp; &nbsp; Tutor@py.cz &lt;mailto:Tutor@py.cz&gt;<br>
&gt; &nbsp; &nbsp; http://www.py.cz/mailman/listinfo/tutor<br>
&gt;<br>
&gt;<br>
&gt; ------------------------------------------------------------------------<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; Tutor mailing list<br>
&gt; Tutor@py.cz<br>
&gt; 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 &nbsp;Bratislava 25 <br>
Tel.: +421/ 2 / 582 31 174 <br>
Fax: +421/ 2 / 582 31 109 <br>
</font>