提问人:Ilai K 提问时间:10/22/2023 最后编辑:E_net4Ilai K 更新时间:10/23/2023 访问量:55
完全模拟 cmd 的子进程
Subprocess to completely emulate a cmd
问:
我正在制作一个“测试和记录”程序来帮助提交我的家庭作业。 程序接收一个 .cs 文件,对其进行编译,然后接收程序在 exe 上尝试的测试(输入)列表。假设我们当前的程序 .exe 接受 3 个用户输入并输出总和。测试列表如下所示(有 1 个测试):
[
["5", "7", "10"]
]
我会在常规 CMD 中运行此测试,如下所示:
Enter number: 5
Enter another number: 7
Enter another number: 10
------
The sum: 22
程序应运行程序 .exe(不打开 cmd 窗口)并输入当前测试中的所有字符串,然后得到:Enter number: 5\nEnter number: 7\nEnter number: 10\n------\nSum: 22
(我需要该数据来生成类似 CMD 的图像来输出。
我尝试在子进程中使用 Popen 函数,然后使用 stdin.write 输入数据,最后我尝试使用 communicate() 获取输出。但它只向我展示了程序 .exe 的输出,而没有用户输入它自己,它也不包括 \n,因为在我的程序 .exe 中我使用了 Write() 而不是 WriteLine(),因此用户可以在与打印文本相同的行中输入。所以我得到了这个:Enter number: Enter another number: Enter another number: ------\nSum: 22
我无法更改EXE代码。
这怎么能做到?(运行命令,输入输入,在没有 cmd 窗口的情况下获取包括用户输入在内的结果)
答: 暂无答案
评论
\n
script