我正在尝试创建一个可以从命令行调用并在python 2.6中使用关键字参数的程序。到目前为止,我已经尝试过:
#!/usr/bin/python
def read(foo = 5):
print foo
return 0
if __name__ == '__main__'
read()
当我尝试从命令行运行它时:./test.py
程序按预期打印5。有没有办法使用./test.py foo=6
?我想保留关键字参数。
这似乎是一个简单的问题,但我没有找到一个好的来源。
答案 0 :(得分:6)
python内置了库,可以帮助您实现向脚本传递命令行参数
argparse
。使用情况与您在问题中描述的情况略有不同......
在基本级别,您可以通过sys.argv
访问所有命令行参数,这将是一个参数列表
很抱歉应该提到python 2.6库名为optparse
答案 1 :(得分:3)
这样的东西?
if __name__ == '__main__':
kwargs = dict(x.split('=', 1) for x in sys.argv[1:])
read(**kwargs)
也就是说,argparse和optparse可能会为那些习惯于命令行的人提供更强大,更自然的东西。 (更不用说,支持字符串以外的类型的参数。)
哦,如果你真正 之后只是交互式使用你的功能,那就使用交互式解释器; python
或ipython
。您需要将代码放入以.py
结尾的文件并导入它,然后您就可以调用它。
答案 2 :(得分:1)