从命令行 python 传递值

比尔凯特

我有一个需要多个参数的 python 函数。就像是:

def func(par1=1, par2=2, par3=3):
... 

我想通过命令行调用这个如:function.py par1=1 par2=2 par3=3

我正在考虑做这样的事情:

import sys

if sys.argv[0][0:4]=="par1":
   par1=int(sys.argv[0][5:])
else:
   par1=1

但它没有看起来非常漂亮,因为用户可能通过只是一些parametrs,或者他们可能把它作为par1 =1par1= 1par1 = 1因此我不得不硬代码的if-else所有这些可能性。有没有更好、更专业的解决方案?谢谢!

泰德

使用argparse从标准库

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("--par1", type=int, default=1, help="This is the description")
opts = parser.parse_args()

print(opts.part1)

查看文档以获取更多详细信息:https : //docs.python.org/3/library/argparse.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章