对Python捕获控制台输出流的方法详解
有时候我们的代码里可能要调用控制台命令,比如我想用Python写一个批量编译.java文件的脚本,用到如下代码
常规用法os.system
importos,traceback
try:
p=os.system("javacTest.java")
printp
except:
print"\nexcept:\n"
printtraceback.format_exc()
如然编译成功会返回一个0,如果错误会返回一个非0的值给p,这种方法可以知道执行结果,但是无法捕获比较重要的提示信息,例如:“错误:找不到文件:Tst.java”。
0
错误:找不到文件:Tst.java 用法:javac<选项><源文件> 使用--help可列出可能的选项 512
接下来我们用commands.getstatusoutput来捕获输出流
importcommands,traceback
try:
res=commands.getstatusoutput("javacTest.java")
printres
printres[1]
except:
print"\nexcept:\n"
printtraceback.format_exc()
成功会返回一个tuple,例如(0,''),第一个元素表示状态,0代表成功,第二个是输出信息,如果错误则返回下面的结果
(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捕获控制台输出流的方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
热门推荐
1 训练狗狗憋尿
2 狗狗追踪训练
3 狗狗训练要多少钱
5 深圳狗狗训练
6 训练狗狗唤回
7 狗狗叫怎么训练
8 狗狗训练班
10 狗狗社会化训练
11 狗狗叫回训练
12 广州狗狗训练学校
13 狗狗训练躺下
14 狗狗随行训练
15 训练狗狗巡回
16 狗狗要怎么训练
17 狗狗喂食训练
18 训练狗狗躺下