Portál AbcLinuxu, 19. dubna 2024 18:32

Pythonovský modul pty

9.8.2006 11:31 | Přečteno: 727×

Zdravím,
umíte jej někdo používat? Znáte program, ve kterém je použit? Dokumentaci, nebo cokoliv? Oficiální dokumentace je skoupá na slovo a ani na freenode v #python se nikdo nenašel :-(
Jde mi o to, že chci spustit některé programy a průběžně číst jejich stdout a ten (naformátovaný) zobrazit v GUI. Na to by byl užitečný subprocess, ale například oggenc a lame mají "status bar", který se do stdout flushuje zřejmě až po skončení programu a nemají přepínač, kterým by se to dalo změnit. :-( Jediná možnost je tedy zřejmě přes pseudo-terminál, v něm spustit proces a číst jeho výstup - bez dokumentace jsem ale bezradný.. Za případné linky děkuji :-)        

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (2) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

9.8.2006 11:53 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Pythonovský modul pty
Odpovědět | Sbalit | Link | Blokovat | Admin
Mno, nevim, jestli je to to, co hledas :), ale oggenc(1):
       -Q, --quiet
              Quiet mode.  No messages are displayed.
Blésmrt
9.8.2006 11:59 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: Pythonovský modul pty
Bohužel, já to potřebuji přesně opačně - jen ať povídá, ale ať se s tím dá rozumně pracovat :-) U mplayeru je to například mplayer -msglevel all=7 . Nicméně díky za snahu.
9.8.2006 12:06 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Pythonovský modul pty
Zkousel jsi pouzit ekvivalent os.popen2(command, bufsize=0)?
9.8.2006 12:15 misterlister | skóre: 12 | blog: aiyyo
Rozbalit Rozbalit vše Re: Pythonovský modul pty
Zkoušel, to načtu vše až na ten řádek, který se neustále mění > u mplayeru se dostanu k "Starting playback..." .. pak se přehraje soubor a teprve poté se dostanu k té status line. U oggenc i lame to žel funguje stejně.
Mikos avatar 9.8.2006 13:33 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Pythonovský modul pty
os.popen2 je zastaralý, používat by se měl modul subprocess ;-)
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
9.8.2006 14:17 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Pythonovský modul pty
Odkud beres podobne zvesti? V dokumentaci o tom IMHO nic nepisou...
Mikos avatar 9.8.2006 14:32 Mikos | skóre: 34 | blog: Jaderný blog | Praha
Rozbalit Rozbalit vše Re: Pythonovský modul pty
Viz dokumentace k modulu subprocess:
The subprocess module allows you to spawn new processes, connect to their input/output/error pipes, and obtain their return codes. This module intends to replace several other, older modules and functions, such as:

os.system
os.spawn*
os.popen*
popen2.*
commands.*
Není to asi žádné "přikázání" (netuším zda se plánuje v budoucnu odstranit to co modul subprocess nahrazuje), ale i různě na netu a v diskuzích sem četl, že používat by se rozhodně měl modul subprocess a je to tak lepší. Ono stačí si tu dokumentaci přečíst, API modulu subprocess je opravdu mnohem lepší než u těch všech možných roztroušených ostatních funkcí...
CETERUM CENSEO DRM ESSE DELENDAM Ostatně soudím, že DRM musí být zničeno!
9.8.2006 14:37 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
Rozbalit Rozbalit vše Re: Pythonovský modul pty
OK, cili je to tak, jak jsem si myslel. Ja osobne jsem pouzil os.popen2(), protoze to byla prvni vec, u ktere v manualu nebylo napsane, ze neni obsolete, a protoze jediny, co potrebuju, bylo (r, w) = os.popen2(foo, bufsize=0) :)

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.