簡體   English   中英

使用批處理文件將輸入從文本文件傳遞到python程序

[英]Passing inputs from a text file to python program using batch file

我的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

    )
)

如果您要輸入的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程序,但將答案文件作為輸入流重定向到該程序

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM