我有这个Python代码:
import os try: os.system('wrongcommand') except: print("command does not work")
代码打印:
wrongcommand: command not found
代替command does not work。有谁知道为什么它不打印我的错误消息?
command does not work
在这个代码中,尽管你使用了try-except语句来捕获异常,但是os.system()函数并不会引发一个Python异常。相反,它会将错误信息输出到标准错误(stderr),而不会引发异常。
os.system()
为了捕获并处理os.system()的错误信息,你可以使用subprocess模块。以下是如何修改你的代码:
subprocess
import subprocess try: subprocess.check_call('wrongcommand', shell=True) except subprocess.CalledProcessError: print("command does not work")
在这个修改后的代码中:
subprocess.check_call()
subprocess.CalledProcessError
这样,你就可以捕获并处理由os.system()引发的错误信息。