對Python捕獲控制臺輸出流的方法詳解
有時候我們的代碼里可能要調(diào)用控制臺命令,比如我想用Python寫一個批量編譯 .java 文件的腳本,用到如下代碼
常規(guī)用法 os.system
import os,traceback
try:
p = os.system("javac Test.java")
print p
except:
print "\nexcept:\n"
print traceback.format_exc()
如然編譯成功會返回一個0,如果錯誤會返回一個非0的值給p,這種方法可以知道執(zhí)行結(jié)果,但是無法捕獲比較重要的提示信息,例如:“錯誤: 找不到文件: Tst.java”。
0
錯誤: 找不到文件: Tst.java 用法: javac <選項> <源文件> 使用 --help 可列出可能的選項 512
接下來我們用 commands.getstatusoutput 來捕獲輸出流
import commands,traceback
try:
res = commands.getstatusoutput("javac Test.java")
print res
print res[1]
except:
print "\nexcept:\n"
print traceback.format_exc()
成功會返回一個tuple,例如(0, ' '),第一個元素表示狀態(tài),0代表成功,第二個是輸出信息,如果錯誤則返回下面的結(jié)果
(512, '\xe9\x94\x99\xe8\xaf\xaf: \xe6\x89\xbe\xe4\xb8\x8d\xe5\x88\xb0\xe6\x96\x87\xe4\xbb\xb6: Tst.java\n\xe7\x94\xa8\xe6\xb3\x95: javac <\xe9\x80\x89\xe9\xa1\xb9> <\xe6\xba\x90\xe6\x96\x87\xe4\xbb\xb6>\n\xe4\xbd\xbf\xe7\x94\xa8 --help \xe5\x8f\xaf\xe5\x88\x97\xe5\x87\xba\xe5\x8f\xaf\xe8\x83\xbd\xe7\x9a\x84\xe9\x80\x89\xe9\xa1\xb9') 錯誤: 找不到文件: Tst.java 用法: javac <選項> <源文件> 使用 --help 可列出可能的選項
以上這篇對Python捕獲控制臺輸出流的方法詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python網(wǎng)絡(luò)爬蟲精解之正則表達(dá)式的使用說明
正則表達(dá)式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規(guī)則字符串”,這個“規(guī)則字符串”用來表達(dá)對字符串的一種過濾邏輯2021-09-09
python調(diào)用pyaudio使用麥克風(fēng)錄制wav聲音文件的教程
這篇文章主要介紹了python調(diào)用pyaudio使用麥克風(fēng)錄制wav聲音文件的教程,詳細(xì)的給大家介紹了pyaudio庫的安裝與使用,需要的朋友可以參考下2019-06-06
django模型動態(tài)修改參數(shù),增加 filter 字段的方式
這篇文章主要介紹了django模型動態(tài)修改參數(shù),增加 filter 字段的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
使用python的pandas讀取excel文件中的數(shù)據(jù)詳情
這篇文章主要介紹了使用python的pandas讀取excel文件中的數(shù)據(jù)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09
Python 調(diào)用有道翻譯接口實現(xiàn)翻譯
這篇文章主要介紹了Python 調(diào)用有道翻譯接口實現(xiàn)翻譯,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Python遠(yuǎn)程視頻監(jiān)控程序的實例代碼
這篇文章主要介紹了Python遠(yuǎn)程視頻監(jiān)控程序的實例代碼,需要的朋友可以參考下2019-05-05
python linecache 處理固定格式文本數(shù)據(jù)的方法
今天小編就為大家分享一篇python linecache 處理固定格式文本數(shù)據(jù)的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-01-01

