如何传递非位置的命令行参数。我只想传递可以分配给脚本中特定变量的参数。
答案 0 :(得分:0)
您可以导入argparse。 :for Python 2.7
你可以这样调用下面的脚本:
python myScript.py -showGivenNumber 42
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-showGivenNumber', action="store", dest="givennumber",)
myArgs = parser.parse_args()
print( myArgs.givennumber )
这里我们将ArgumentParser定义为解析器,并添加我们打印出来的参数-showGivenNumber。
答案 1 :(得分:0)
Bash将参数作为字符串读取,您可以编写字符串以包含标识信息。
$python3 myscript.py second:two first:one third fourth
然后脚本需要找出原因:
import sys
args={'generic':[]}
for arg in sys.argv[1:]: #gets the arguments from bash as a list of strings
if ':' not in arg:args['generic'].append(arg) #collects generic args
else: #contains an arbitrary key seperator
key,val=arg.split(':')
assert key not in args #raises an error if its going to overwrite a key
args[key]=val
main_program(**vars)
在main_program函数中,第一个和第二个是你可以使用的变量,'generic'将有一个包含第三个和第四个等的列表。
键必须是有效的python变量,否则调用program会在调用main_program之前引发类型错误。