|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 疾风魔狼剑 于 2021-5-25 20:54 编辑
书本一道习题
收到的解法五花八门的
手动改太费神了
想写个程序批量改
查了一下测试的相关资料
如unittest pytest貌似比较复杂
短时间没法实现
原题目是要求从键盘读取一个数
经由计算以后在屏幕上输出结果
这样的话就涉及到input和print
我自己的想法是
用如下的方法把py文件改写成函数,然后调用函数用测试用例去对比
with open(r'E:\Python\Python38\批改\m1.py','r',encoding='utf-8') as py:
data=py.readlines()
with open(r'E:\Python\Python38\批改\m1_c.py','w',encoding='utf-8') as py:
py.write("def test():\n")
for i in range(len(data)):
py.write(' '+data[i])
input()的话直接test(a)就好,
print要怎么处理?一个值还能print改return
有些多个值需要换行输出的要如何获取?
看看这个是否能帮到你:
测试代码:
- a,b=input().split()
- print("a+b=",int(a)+int(b))
复制代码
主代码:
- from subprocess import Popen as popen,PIPE as pipe,STDOUT as stdout
- ret=popen("py test1.py",stdin=pipe, stdout=pipe,stderr=stdout).communicate(input=b"2 5")
- print(ret[0].decode().replace("\n",""))
复制代码
演示结果:
PS D:\wp> py test3.py
a+b= 7
|
|