这里有一些解决方案。这个想法是编写一段代码来检查它是否需要从用户或一组变量中获取输入。
解决方案 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:", auto_input)
return auto_input
else:
return input("Manual input: ")
some_var = get_input("some_var")
print(some_var)
如果手动运行,不带参数执行
$ python3 script.py
Manual input: 1
1
如果从批处理文件运行,请使用参数执行
$ python3 script.py --some_var=1
Auto input: 1
1
解决方案 2
使用环境变量设置输入变量。
import os
def get_input(var_name):
if auto_input := os.getenv(var_name):
print("Auto input:", auto_input)
return auto_input
else:
return input("Manual input: ")
some_var = get_input("some_var")
print(some_var)
如果手动运行,不带环境变量执行
$ python3 script.py
Manual input: 1
1
如果从批处理文件运行,请使用环境变量执行
$ export some_var=1
$ python3 script.py
Auto input: 1
1