myslim, ze budem muset komunikovat konkretneji - rozepis se vice o problemu<br><br>std vstup i vystup si muzes predstavit jako normalni soubor - <br>funkce print napr. posila svuj vystup na stdout - nastavenim stdout do souboru bude do neho zapsan vsechen std vystup, ktery bude vysledkem souboru spusteneho napr. pomoci execfile()
<br><br>stejne by mel fungovat i stdin, ze ktereho bude externi program cist tak, jako bychom to psali pomoci klavesnice - je-li tedy ocekavam vstup pomoci raw_input(), bude tento nacten defaultne ze sys.stdin.read()<br><br>
Problem ktery popisujes ty ale spise vypada na to, ze chces, aby dva programy komunikovaly pomoci &quot;roury&quot;, coz by se mnout naznacenym zpusobem melo taky dat realizovat.<br>J.<br><br><div><span class="gmail_quote">
On 10/10/06, <b class="gmail_sendername">Karel Srot</b> &lt;<a href="mailto:karel.do.pekla.zajel@seznam.cz">karel.do.pekla.zajel@seznam.cz</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
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;<a href="mailto:karel.do.pekla.zajel@seznam.cz">
karel.do.pekla.zajel@seznam.cz</a><br>&gt; &lt;mailto:<a href="mailto:karel.do.pekla.zajel@seznam.cz">karel.do.pekla.zajel@seznam.cz</a>&gt;&gt; wrote:<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Zdravim vsechny,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; mam nasledujici dotaz. zkousel jsem najit odpoved v nejake dokumentaci
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ci prikladech, ale jsem z toho tulpachovej.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Mam externi program. Ten chci z pythonu spustit, posilat mu neco na<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vstup a prebirat vystup. Zatim jsem pouzil funkci popen4. Vim, ze
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; vhodnejsi by bylo pouzit modul subprocess, ale v tom se moc<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; neorientuju.<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Navic mi jde o to, najit funkcni reseni a pochopit ho, takze klidne<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; piste reseni pomoci subprocess.
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Problem je v tom, ze ten program ne vzdy da vystup. Takze ja mu muzu<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; poslat data a on nemusi vubec odpoved. Upravit tento program nelze,<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; proste to tak funguje. Jak zjistim, ze program neco poslal na vystup?
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Nelze pouzit readline ci read, protoze to zpusobi cekani na konec<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; radku/souboru. Jak tedy provest kontrolu toho, ze muzu neco cist a<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; pak<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; to teprve nacist.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Dalsi dotaz je podobny. Kdybych presmeroval vystup externiho
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; programu do<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; souboru a v pythonu pak z toho souboru cetl, tak fungovalo by to? Tedy<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ja bych programu neco poslal, on by to vypsal do souboru a ja bych<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; ten<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; soubor prubezne cetl? Resp. jak bych ho mel cist?
<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Diky za odpoved, snad jsem to napsal srozumitelne.<br>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Karel<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; _______________________________________________<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; Tutor mailing list<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:Tutor@py.cz">
Tutor@py.cz</a> &lt;mailto:<a href="mailto:Tutor@py.cz">Tutor@py.cz</a>&gt;<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.py.cz/mailman/listinfo/tutor">http://www.py.cz/mailman/listinfo/tutor</a><br>&gt;<br>&gt;<br>&gt; ------------------------------------------------------------------------
<br>&gt;<br>&gt; _______________________________________________<br>&gt; Tutor mailing list<br>&gt; <a href="mailto:Tutor@py.cz">Tutor@py.cz</a><br>&gt; <a href="http://www.py.cz/mailman/listinfo/tutor">http://www.py.cz/mailman/listinfo/tutor
</a><br><br>_______________________________________________<br>Tutor mailing list<br><a href="mailto:Tutor@py.cz">Tutor@py.cz</a><br><a href="http://www.py.cz/mailman/listinfo/tutor">http://www.py.cz/mailman/listinfo/tutor
</a><br></blockquote></div><br>