|  | 
 
| 
本帖最后由 疾风魔狼剑 于 2021-5-25 20:54 编辑
x
马上注册,结交更多好友,享用更多功能^_^您需要 登录 才可以下载或查看,没有账号?立即注册  
 书本一道习题
 收到的解法五花八门的
 手动改太费神了
 想写个程序批量改
 查了一下测试的相关资料
 如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 | 
 |