我的Python脚本可以从文件中获取其参数,而不是命令行吗?我不介意在命令行上传递包含参数的文件。
我正在使用argparse。
原因是我有一个非常复杂的参数列表。我想我可以将调用包装在一个批处理文件或另一个Python脚本中,但我想知道这是否可行,并且认为我会问,也许可以学到一些东西。
因此,我可以
而不是myScript.py --arg_1=xxx --arg2_=xxx ... --arg_n=xxx
myScript.py --file args.txt
其中args.txt包含
--arg_1=xxx
--arg_2=xxx
...
--arg_n=xxx
答案 0 :(得分:4)
您可以告诉解析器,以某些字符开头的参数实际上是包含更多参数的文件的名称。来自documentation:
>>> with open('args.txt', 'w') as fp:
... fp.write('-f\nbar')
>>> parser = argparse.ArgumentParser(fromfile_prefix_chars='@')
>>> parser.add_argument('-f')
>>> parser.parse_args(['-f', 'foo', '@args.txt'])
Namespace(f='bar')
解析器从args.txt
读取,并将每一行视为单独的参数。
答案 1 :(得分:1)
您可以通过将命令行参数作为文件名然后打开它来执行此操作。 像
file_name=sys.argv[1]
f=open(file_name)
arguments= f.read()
user_input=arguments.split()
user_argument=[]
for i in range():
user_argument.append(user_input[i])
您可以在此处获取列表user_argument中的用户参数列表。 Perheps你会得到你想要的!