gpt4 book ai didi

python - 有什么方法可以获取使用 parser.add_option 创建的选项的输入,而不获取同一选项的任何输入?

转载 作者:行者123 更新时间:2023-12-01 07:07:46 47 4
gpt4 key购买 nike

现在,当我在命令提示符中输入“python openweather.py --api=key --city=London --temp=fahrenheit ”时,我会得到所需的华氏温度输出,甚至是如果输入 celcius ("--temp=celcius "),我会得到所需的温度输出(以 celcius 为单位)。

但我进一步要求的是,如果我输入“python openweather.py --api=key --city=London --temp ”,我需要默认以 celcius 输出。问题是我无法对相同的“--temp”执行此操作,因为我不断收到错误:“openweather.py:错误:--temp选项需要1个参数”对于我尝试的任何事情。

以下是我正在使用的代码:

parser = OptionParser()

parser.add_option('--api', action='store', dest='api_key', help='Must provide api token to get the api request')

parser.add_option('--city', action='store', dest='city_name', help='Search the location by city name')

parser.add_option('--temp', action='store', dest='unit', help='Display the current temperature in given unit')

所以我需要相同的“--temp”才能接受输入并保持没有输入。如有任何帮助,我们将不胜感激。

最佳答案

使用 nargs='?' 并使用 const='farenheit' 设置默认值

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('--temp', '-t', nargs='?', type=str, const='farenheit')

c = parser.parse_args()

# Show what option was chosen.
# If --temp was not used, c.temp will be None
# If -- temp was used without argument, the default value defined in
# 'const='farenheit' will be used.
# If an argument to --temp is given, it will be used.

print(c.temp)

示例运行:

thierry@tp:~$ python test.py
None

thierry@tp:~$ python test.py --temp
farenheit

thierry@tp:~$ python test.py --temp celsius
celsius

关于python - 有什么方法可以获取使用 parser.add_option 创建的选项的输入,而不获取同一选项的任何输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58362261/

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