有没有办法在 Python 中测试 os.system() 命令的结果?

Is there a way to test the results of an os.system() command in Python?

这不是我的代码的精确副本,但这是我对此的唯一想法:

import os
import re

while True:
    com = input()

    if com == "break":#Doesn't matter
        break

    run = os.system(com)
    if run == "'" + com + "' is not recognized as an internal or external command, operable program or batch file.":
        print("Error.")
    else:
        os.system(com)

而且它不起作用。我只需要一种方法来知道是否有一种方法可以测试 os.system() 函数是否有效,如果有效则打印响应,然后打印“错误”。除此以外。 如果重要的话,我正在使用 python 3.9

os.system函数的return是操作系统程序(或命令)所做的return。按照惯例,如果成功则为 0,如果失败则为与 0 不同的数字。您想要的错误消息不是命令的结果,而是发送到 stderr(通常)的内容。

因此,您的代码应该是:

import os
import re

while True:
    com = input()

    if com == "break":#Doesn't matter
        break

    ret_value = os.system(com)
    if ret_value != 0:
        print(f"Error. Command returned {ret_value}")
    else:
        print("Command returned success")