Popen 没有引发异常,因此我无法捕获它。我错过了什么吗?它在终端窗口上打印错误,就好像成功一样。参考图片。但是,如果给出有效的参数,它就会正确启动。
import subprocess
try:
subprocess.Popen(["xdg-open", "invalid"])
print("Launched")
except:
print("Exception")
环境:Python 3.10.12 [GCC 11.4.0]、Ubuntu 22.04.4 LTS
找到了我正在寻找的答案:
需要做这样的事情:
import subprocess
try:
res = subprocess.Popen(["xdg-open", "/home/sandeep/Scripts/ControlPanel/Data/ControlPanel.ini"],stdout=subprocess.PIPE,stderr=subprocess.PIPE); output,error = res.communicate()
if output:
print(" ret> ",res.returncode)
print(" OK> output ",output)
if error:
print(" ret> ",res.returncode)
print(" Error> error ",error.strip())
except:
print("Exception")