有没有办法在 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")
这不是我的代码的精确副本,但这是我对此的唯一想法:
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")