21 ŞUBAT 2013, PERŞEMBE
ayrıştırma argparse boolean değerleri
Argparse komut satırı boolean değişken olarak yazılı ayrıştırmak için kullanmak istiyorum "" ya da "foo Yanlış". ----foo Doğru Örneğin:
my_program --my_boolean_flag False
Ancak, aşağıdaki test kodunu istiyorum ne yapmaz:
import argparse
parser = argparse.ArgumentParser(description="My parser")
parser.add_argument("--my_bool", type=bool)
cmd_line = ["--my_bool", "False"]
parsed_args = parser.parse(cmd_line)
Ne yazık ki, parsed_args.my_bool
True
olarak değerlendirir. Bu cmd_line
bool("")
False
evalutates beri şaşırtıcı olan ["--my_bool", ""]
, ben değişiklik bile böyledir.
Nasıl "False"
, "F"
ve onların ayrıştırmak için küçük harf False
olmak türevleri argparse alabilir miyim?
CEVAP
21 ŞUBAT 2013, PERŞEMBE
Daha kurallı bunu yapmanın yolu üzerinden bence
command --feature
ve
command --no-feature
argparse
güzel bu sürüm destekler:
parser.add_argument('--feature', dest='feature', action='store_true')
parser.add_argument('--no-feature', dest='feature', action='store_false')
parser.set_defaults(feature=True)
Eğer gerçekten --arg <True|False>
sürümü istiyorsanız tabii ki, ast.literal_eval
olarak geçirmek "tip", ya da bir kullanıcı tanımlı işlevi ...
def t_or_f(arg):
ua = str(arg).upper()
if ua == 'TRUE'[:len(ua)]:
return True
elif ua == 'FALSE'[:len(ua)]:
return False
else:
pass #error condition maybe?
Bunu Paylaş:
Hangi MySQL boolean değerleri saklamak...
Boolean değerleri ile modeller için Ba...
C kullanarak boolean değerleri...
Boolean boolean değerleri için vs mini...
C Boolean değerleri kullanarak bit ope...