python 2.7 检查参数是否已从命令提示符传递
python 2.7 check if argument has been passed from command prompt
有点陷入困境。我需要检查在执行 python 脚本时是否通过命令提示符传递了某个参数。
我将 python 文件执行为 python run.py -ip 127.0.0.1 -trigger 1
在我的 python 脚本中,我使用 argparse
作为
parser = argparse.ArgumentParser()
parser.add_argument('-ip', '--ip')
args = parser.parse_args()
如何检查参数 trigger
是否已通过。如果参数中有 trigger 则获取 trigger 的值并打印它。
并且脚本应该能够 运行 使用以下所有命令
python run.py -ip 127.0.0.1
没有触发参数。
python run.py -ip 127.0.0.1 -trigger
没有触发参数的值。
python run.py -ip 127.0.0.1 -trigger 1
包含所有参数及其值。
另外执行命令是自动化系统自动生成的,因此参数可以更多,例如命令可以是python run.py -ip 127.0.0.1 -trigger 1 prompt 0 base 5 .....
,-trigger 1 prompt 0 base 5
等是自动生成的,因此我想在我的 python 脚本中实现 parameter check
,以便它可以处理任意数量的传递参数。
argparse 的最小示例,但您应该阅读 tutorial:
#!/usr/bin/python
import argparse
parser = argparse.ArgumentParser(description='Check for trigger')
parser.add_argument('-trigger', help='trigger value')
args = parser.parse_args()
if args.trigger is not None:
print("trigger value: {}".format(args.trigger))
你得到输出:
○ → ./trigger.py
○ → ./trigger.py -trigger=
trigger value:
○ → ./trigger.py -trigger 1
trigger value: 1
向您的解析器添加一个 --trigger
参数
parser = argparse.ArgumentParser()
parser.add_argument('-ip', '--ip')
parser.add_argument('-t','--trigger', nargs='*')
args = parser.parse_args()
如果 --trigger
不存在,args.trigger
应该是默认值(例如 None
)
如果不带参数存在,args.trigger
将是 []
,空列表
否则它将是后面所有字符串的列表。从技术上讲,[] 的情况也是如此。
用nargs='?'
可以定义const
,但是只能给它一个参数。
nargs=argparse.REMAINDER
也应该有效。 If 将抓取 --trigger
之后的所有内容,无论它是否看起来像标志 ('--')。如果您将字符串传递给另一个程序,这会很方便。请参阅文档中的示例
parse_known_args
如果你想现在解析一些字符串,稍后再处理其余的,这也很方便。同样,这在文档中。
带有 nargs='*'
的位置参数也很方便。输入字符串中的 '--'
有助于将应解析的字符串与应查看的简单参数字符串分开。
有点陷入困境。我需要检查在执行 python 脚本时是否通过命令提示符传递了某个参数。
我将 python 文件执行为 python run.py -ip 127.0.0.1 -trigger 1
在我的 python 脚本中,我使用 argparse
作为
parser = argparse.ArgumentParser()
parser.add_argument('-ip', '--ip')
args = parser.parse_args()
如何检查参数 trigger
是否已通过。如果参数中有 trigger 则获取 trigger 的值并打印它。
并且脚本应该能够 运行 使用以下所有命令
python run.py -ip 127.0.0.1
没有触发参数。
python run.py -ip 127.0.0.1 -trigger
没有触发参数的值。
python run.py -ip 127.0.0.1 -trigger 1
包含所有参数及其值。
另外执行命令是自动化系统自动生成的,因此参数可以更多,例如命令可以是python run.py -ip 127.0.0.1 -trigger 1 prompt 0 base 5 .....
,-trigger 1 prompt 0 base 5
等是自动生成的,因此我想在我的 python 脚本中实现 parameter check
,以便它可以处理任意数量的传递参数。
argparse 的最小示例,但您应该阅读 tutorial:
#!/usr/bin/python
import argparse
parser = argparse.ArgumentParser(description='Check for trigger')
parser.add_argument('-trigger', help='trigger value')
args = parser.parse_args()
if args.trigger is not None:
print("trigger value: {}".format(args.trigger))
你得到输出:
○ → ./trigger.py
○ → ./trigger.py -trigger=
trigger value:
○ → ./trigger.py -trigger 1
trigger value: 1
向您的解析器添加一个 --trigger
参数
parser = argparse.ArgumentParser()
parser.add_argument('-ip', '--ip')
parser.add_argument('-t','--trigger', nargs='*')
args = parser.parse_args()
如果 --trigger
不存在,args.trigger
应该是默认值(例如 None
)
如果不带参数存在,args.trigger
将是 []
,空列表
否则它将是后面所有字符串的列表。从技术上讲,[] 的情况也是如此。
用nargs='?'
可以定义const
,但是只能给它一个参数。
nargs=argparse.REMAINDER
也应该有效。 If 将抓取 --trigger
之后的所有内容,无论它是否看起来像标志 ('--')。如果您将字符串传递给另一个程序,这会很方便。请参阅文档中的示例
parse_known_args
如果你想现在解析一些字符串,稍后再处理其余的,这也很方便。同样,这在文档中。
带有 nargs='*'
的位置参数也很方便。输入字符串中的 '--'
有助于将应解析的字符串与应查看的简单参数字符串分开。