2 回答

TA貢獻1780條經(jīng)驗 獲得超5個贊
這是使用ast.literal_eval字符串拆分的相對簡單的任務(wù)-但僅當您具有定義明確的語法時。(例如,僅允許--foo=bar或中的1個--foo bar)。
import argparse
import ast
parser = argparse.ArgumentParser() #allow the creation of known arguments ...
namespace,unparsed = parser.parse_known_args()
def parse_arg(arg):
k,v = arg.split('=',1)
try:
v = ast.literal_eval(v) #evaluate the string as if it was a python literal
except ValueError: #if we fail, then we keep it as a string
pass
return k.lstrip('-'),v
d = dict(parse_arg(arg) for arg in unparsed)
print(d)
我將鍵值對放入字典中。如果您確實希望將它們作為全局變量,則可以globals().update(d)-但我會對此提出嚴重建議。
添加回答
舉報