Python try block 不捕获 os.system 异常

标签 python try-catch os.system except

我有这个 python 代码:

import os
try:
  os.system('wrongcommand')
except:
  print("command does not work")

代码打印:

wrongcommand: command not found

代替命令不起作用。有谁知道为什么它不打印我的错误消息?

最佳答案

如果你想在命令不存在时抛出异常,你应该使用subprocess:

import subprocess
try:
    subprocess.run(['wrongcommand'], check = True)
except subprocess.CalledProcessError:
    print ('wrongcommand does not exist')

仔细想想,无论如何你应该使用 subprocess 而不是 os.system ...

关于Python try block 不捕获 os.system 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12373563/

相关文章:

Python:当try block 失败时仅运行异常 block

node.js - waterfall 函数没有重复的一次尝试/捕获(使用异步 waterfall )

Python 操作系统故障

具有复杂命令的 Python 子进程

python - 向量化查找数组中最接近值的函数

python - ttk 入口背景色

javascript - 如何使用 window.history.pushState 'safely'

python - 克服 Python 2.3 中的 os.system() 限制

python - Pandas 数据帧 to_latex : how to fit tables on a page?

PHP bcmath 与 Python Decimal