一、问题背景
学生写了一个计算器程序test.py,我要去测上面这个5个命令是否能够获得正确的结果
我想写一个python代码,包含上面5个命令,并输出给我看结果,可以实现吗?
二、不需要获取shell返回结果的
使用
os.system(command)
新建judge.py
# -*- coding: utf-8 -*-
import os
os.system("python3 test.py \"1 + 2 - 3 + 4\"")
os.system("python3 test.py \"1 + 2 - 3 + 1 / 3\"")
os.system("python3 test.py \"1 + + 2\"")
os.system("python3 test.py \"1 / 0\"")
os.system("python3 test.py \"a + 1\"")
三、需要获取返回结果的
我不想用眼睛比较结果是否正确,想让代码自动比较结果是否正确。
但是os.system返回值: 0、1、-1等int的数字.
可以使用
subprocess.Popen("command", stdout=subprocess.PIPE, shell=True).stdout.readlines()
# -*- coding: utf-8 -*-
import os
import subprocess
resp = subprocess.Popen("python3 test.py \"1 + 2 - 3 + 4\"", stdout=subprocess.PIPE, shell=True).stdout.readlines()
print(resp)
os.system("python3 test.py \"1 + 2 - 3 + 4\"")
os.system("python3 test.py \"1 + 2 - 3 + 1 / 3\"")
os.system("python3 test.py \"1 + + 2\"")
os.system("python3 test.py \"1 / 0\"")
os.system("python3 test.py \"a + 1\"")
可以再写几行代码提取一下