Python文件关键字参数?

时间:2015-11-24 20:08:21

标签: python command-line keyword-argument

在命令行中,我能够将参数传递给python文件:

python script.py arg1 arg2

我可以在arg1中检索arg2script.py作为:

import sys
arg1 = sys.argv[1]
arg2 = sys.argv[2]

但是,我想将关键字参数发送到python脚本,并将它们检索为字典:

python script.py key1=value1 key2=value2

然后我想在python中访问关键字参数作为字典:

{'key1' : 'value1', 'key2' : 'value2'}

这可能吗?

1 个答案:

答案 0 :(得分:13)

我认为你要找的是argparse模块https://docs.python.org/dev/library/argparse.html

它允许您使用命令行选项和参数解析。

e.g。对script.py

假设以下内容
import argparse

if __name__ == '__main__':
   parser = argparse.ArgumentParser()
   parser.add_argument('--arg1')
   parser.add_argument('--arg2')
   args = parser.parse_args()

   print args.arg1
   print args.arg2

   my_dict = {'arg1': args.arg1, 'arg2': args.arg2}
   print my_dict

现在,如果你尝试:

  $ python script.py --arg1 3 --arg2 4
你会看到:

3
4
{'arg1': '3', 'arg2': '4'}

作为输出。我认为这就是你所追求的。

但请阅读文档,因为这是一个如何使用argparse的 非常 的示例。例如,我传入的'3'和'4'被视为str而不是整数