首先貼一段**:
parser = get_parser()
p = parser.parse_args()
if p.config is not none:
with open(p.config, 'r') as f:
default_arg = yaml.load(f)
key = vars(p).keys()
for k in default_arg.keys():
if k not in key:
print(f"wrong key: ")
assert k in key
parser.set_defaults(**default_arg)
幾個點,
p是乙個python
庫裡面的argparse
中的argumentparser
類例項,他有他的類屬性和類屬性的值。那麼vars
這個函式常常用於將乙個類例項轉成dict
。
我們可以很方便的寫乙個yaml
,然後就用pyyaml
庫直接讀取,也就是yaml.load
。
最後,p作為類例項,可以呼叫他的乙個類方法set_defaults
,來給這個類例項的類屬性重新給付乙個新的預設default值。
最終形成的結果就是,在我們創造的引數系統中,存在如下的優先順序:
command line > configure > default
python中的小技巧
1.為了防止出現檔案未關閉所出現的錯誤,最好使用 with open predict.txt w as f 2.如果pycharm中無法使用快捷鍵複製貼上 file setting vim emulation 將對應快捷鍵後面的handler更改為ide 3.如果pycharm進入之後預設是iner...
python中的小技巧
1 python將字串型別list轉換成list python讀取了乙個list是字串形式的 11.23,23.34 想轉換成list型別 法一 import ast str list 11.23,23.34 list list ast.literal eval str list print typ...
python中requests小技巧
關於 python requests 在使用中,總結了一些小技巧把,記錄下。1 保持請求之間的cookies,我們可以這樣做。2 請求時,會加上headers,一般我們會寫成這樣 唯一不便的是之後的 每次都需要這麼寫,顯得臃腫,所以我們可以這樣 3 預設requests請求失敗後不會重試,但是我們跑...