第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

命令行參數(shù)作為Python中的變量定義

命令行參數(shù)作為Python中的變量定義

牧羊人nacy 2021-03-30 04:11:15
我正在嘗試構(gòu)建(某種模板/包裝器)腳本,該腳本使用一些未定義的選項進行調(diào)用> the_script.py --foo=23 --bar=42 --narf=fjoord然后創(chuàng)建一個名為變量foo=23,bar=42,narf='fjoord'在它里面。怎么做呢?我嘗試使用getopt,但是它需要第二個參數(shù),因此我必須定義要獲取的選項,當然,我希望能夠通過命令行定義變量名。我也嘗試OptionParser過,但是不確定如何處理未定義的選項。那么是手動解析的方式sys.argv,還是在那里存在一個模塊,其功能完全相同?
查看完整描述

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)-但我會對此提出嚴重建議。


查看完整回答
反對 回復 2021-04-01
  • 2 回答
  • 0 關(guān)注
  • 278 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號