[python] os.popen vs. os.system

Petr Prikryl PrikrylP na skil.cz
Čtvrtek Září 14 10:05:03 CEST 2006


Zkus os.popen2() nebo os.popen3() a analyzovat err výstup. Příklad:

import os

cin, cout = os.popen2('cvs --version')
lines = cout.read()
print lines
cin.close()
cout.close()

print '-' * 70

cin, cout, cerr = os.popen3('cvs --version')
lines = cout.read()
print "cout: '" + lines + "'"
lines = cerr.read()
print "cerr: '" + lines + "'"

cin.close()
cout.close()
cerr.close()

print '-' * 70

cin, cout, cerr = os.popen3('neexistujiciprogram')
lines = cout.read()
print "cout: '" + lines + "'"
lines = cerr.read()
print "cerr: '" + lines + "'"

cin.close()
cout.close()
cerr.close()
 
-----Original Message-----
Martin Jedlička napsal...

Zdravim,  mam takovy problem. Poustim prikaz v prikazove radce (volam cvs.exe s parametrama) a rad bych, aby se nezobrazovalo to cerne okno cmd (os.system(cmd))* *K tomu jsem pouzil os.popen, problem je ale v tom, ze kdyz se vyskytne nejaky problem (chyba pri spusteni cvs.exe), tak to nevidim. Existuje nejaky zpusob, jak mi popen vyhodi nejaky vytup pri nepovedeni operace? Nebo existuje nejaky lepsi zpusob, jak spoustet externi programek s parametrama, aniz by se poustelo cerne cmd okno, ale pri chybe by to vyhodilo nejakou navratovou hodnotu (execl ?)?


Další informace o konferenci Python