2016-07-28 140 views
1

我需要从命令行捕获错误,屏幕上没有打印错误消息。当发生这种情况时,我需要提供另一个命令来运行。从命令行捕获错误Python

这就是我现在做的事:

hyst_cmd = "si viewhistory ..." 
process = subprocess.Popen(hyst_cmd, stdout=subprocess.PIPE) 
hyst = process.stdout.read().splitlines() 

当我做了一些项目,我收到一条错误信息,在屏幕上。

对不起,我的英语!

+0

你试过把这个代码在'尝试“除了”?这是捕获异常的好方法,您可以指定另一个“命令”,以便在“except”块中运行。 – shaktimaan

回答

0

根据官方文件,子过程中Popen最常见的例外是OSError

捕获错误,你可以简单地试试下面的办法:

hyst_cmd = "si viewhistory ..." 

try: 
    process = subprocess.Popen(hyst_cmd, stdout=subprocess.PIPE) 
    hyst = process.stdout.read().splitlines() 

except OSError: 
    <write_log_file or other action.> 

欲了解更多信息,可以查看下面的链接:
Subprocess Exception