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 "roury", 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> <<a href="mailto:karel.do.pekla.zajel@seznam.cz">karel.do.pekla.zajel@seznam.cz</a>> 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>> 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* <<a href="mailto:karel.do.pekla.zajel@seznam.cz">
karel.do.pekla.zajel@seznam.cz</a><br>> <mailto:<a href="mailto:karel.do.pekla.zajel@seznam.cz">karel.do.pekla.zajel@seznam.cz</a>>> 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>> <a href="mailto:Tutor@py.cz">
Tutor@py.cz</a> <mailto:<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>><br>><br>> ------------------------------------------------------------------------
<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><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>