我的python程序要求订单中的几个输入并确定需要什么输出。在python shell下使用时工作正常。
现在我正在尝试使用Windows批处理文件创建一个测试程序,该程序将读取文本文件并将每个文本文件中的内容作为每个测试用例的输入。
我是批处理文件的新手,所以我不确定如何在这个批处理文件中提供python输入。我试图通过以下方式传递参数:
python.exe S_bank.py input
但是它只是弹出命令行窗口而没有任何输入。
这是我到目前为止所得到的(根本不起作用):
@echo off
setlocal enabledelayedexpansion
set line=0
for /r %%A in (*.txt) do (
echo running test %%A >> frontendlog.txt
start "C:\Python27\python.exe" "Z:\personal\test\S_bank.py"
for /F %%i in (%%A) do (
"Z:\personal\test\S_bank.py" %%i >> frontendlog.txt
)
)
答案 0 :(得分:0)
如果您的python代码"请求"对于输入,使用批处理自动化它的最简单方法是为每个要测试的案例准备一个答案文本文件,并为python程序将用于检索信息的每个提示添加一行。然后迭代调用python程序的输入文件列表,并将答案文件用管道传输或重定向到它,因此,从控制台的管道中检索信息
所以,对于像
这样的简单代码test.py
input_var1 = raw_input("Enter something: ")
input_var2 = raw_input("Enter something: ")
print ("you entered: " + input_var1 + ", " + input_var2)
将文件回复为
FILE1.TXT
one
two
FILE2.TXT
three
four
您将有一个批处理文件
@echo off
setlocal enableextensions disabledelayedexpansion
for %%a in ("file*.txt") do (
<"%%~a" "C:\Python27\python.exe" "c:\somewhere\test.py"
)
也就是说,对于每个答案文件,调用python程序,但将答案文件作为输入流重定向到程序