2017-01-17 1 views
0

Z. B, kann ich os.system verwenden Sie ein Shell-Befehl auszuführen, wie folgt aus:Python: io umleiten, wie man Rückgabewert von Ausgabeinhalt ausschließt?

>>> import os 
>>> os.system("ls") 
1p.py     Tmytest1    getpip.py    src 
1p.pyc     a.out     helloworld    tags 
0 

scheint die „0“ ist der Rückgabewert von „System“ Funktionsaufruf, und es Python druckt. Dann habe ich versucht, wie diese das System Befehlsausgabe in eine Datei zu umleiten:

>>> import os 
>>> import sys 
>>> testlog=open('testlog.txt','w') 
>>> os.dup2(testlog.fileno(),sys.stdout.fileno()) 
>>> print 'abc' 
>>> print 'xyz' 
>>> os.system("ls") 

Dann habe ich cat „testlog.txt“, fand ich den Inhalt enthält letzte Zeile von „0“. Dies ist nicht das, was ich wollte, wie kann man den Rückgabewert davon abhalten, in die Ausgabedatei umgeleitet zu werden?

+1

Tun Sie einfach etwas wie 'a = os.system (' ls ') ', es wird die Ausgabe des Befehls gedruckt und nicht den zurückgegebenen Wert ausgegeben. – ishaan

Antwort

1

Da es ein zurückgegebener Wert ist, warum nicht speichern?

_ = os.system('ls') 

Danach wird der Wert von _ seine 0, und dass 0 nicht in der Ausgabe enthalten sein.

Verwandte Themen