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