gpt4 book ai didi

python - 如果 getopt 中未设置 cmd 参数,如何设置默认值

转载 作者:行者123 更新时间:2023-11-30 23:23:02 32 4
gpt4 key购买 nike

我使用 getopt 来解析 python 脚本中的命令行参数。是否可以为命令行参数设置默认值?我有以下代码:

try:
opts, args = getopt.getopt(argv,"htt:tf:d:",["from=","to=","on="])
except getopt.GetoptError:
print 'logReader.py -f <from> -t <to> -d <on>'
sys.exit(2)
for opt, arg in opts:
if opt == '-h':
print 'logReader.py -f <from> -t <to> -d <on>'
sys.exit()
elif opt in ("-f", "--from"):
fromTime = arg
elif opt in ("-t", "--to"):
toTime = arg
elif opt in ("-d", "--on"):
onDate = arg

因此,如果未设置 from ,我需要这样做,应将 fromTime 设置为某个默认值。

最佳答案

内置argparse包你可以这样做:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-p', '--population',
required=False,
type=int,
default=100,
dest="pop",
metavar="<number of individuals>",
help="Number of individuals in each population" )
parser.add_argument('-g', '--generation',
required=False,
type=int,
default=30,
dest="ngen",
metavar="<number of generations>",
help="Number of generations to calculate" )
args = parser.parse_args()

如您所见:定义参数类型、默认值、使用信息、参数的长版本和短版本等。实例化后,可以使用其 dest 属性通过对象访问这些值。例如,参数-g将存储在args.ngen中,-p将存储在args.pop中.

关于兼容性问题,argparse 确实可以在 Python => 2.3 上工作,根据其 pypi page 。只需安装它或捆绑它即可。

关于python - 如果 getopt 中未设置 cmd 参数,如何设置默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24180193/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com