我有一個Python檔案,我必須每天運行,所以我正在制作一個批處理檔案,我將用它來自動處理這個程序。問題是:這個python腳本中有一個輸入函式。我必須每天運行它,按 "1"、"Enter",然后就可以了。
我已經知道了,用
python_locationpython.exe python_script_location est.py
我可以運行該腳本。但是,我不知道如何將 "1 "傳遞給當我運行上述批處理代碼時被觸發的輸入函式。
我試過echo 1 | python_locationpython.exe python_script_location est.py,它給我一個'EOF'錯誤。
uj5u.com熱心網友回復:
這里有一些解決方案。我們的想法是寫一段代碼,檢查它是需要從用戶那里獲得輸入還是從一個設定的變數那里獲得輸入。
解決方案1:
使用命令列引數來設定輸入變數。
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-some_var', default=None, required=False)
cli_args = parser.parse_args()
def get_input(var_name)。
if auto_input := getattr(cli_args, var_name, None)。
print("Auto input:"/span>, auto_input)
return auto_input
else:
return input("手動輸入:")
some_var = get_input("some_var")
print(some_var)
如果是手動運行,不帶引數的執行
$ python3 script.py
手動輸入。1。
1: 1
如果從批處理檔案中運行,要帶引數執行
$ python3 script.py --some_var=1
自動input。1
1: 1
解決方案2
使用環境變數來設定輸入變數。
import os
def get_input(var_name)。
if auto_input := os.getenv(var_name)。
print("Auto input:"/span>, auto_input)
return auto_input
else:
return input("手動輸入:")
some_var = get_input("some_var")
print(some_var)
如果是手動運行,執行時不要使用環境變數
$ python3 script.py
手動input。1。
1: 1
如果從批處理檔案運行,用環境變數執行
$ export some_var=1
$ python3 script.py
自動input。1 1
1: 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/315750.html
標籤:
