今天用python讀取乙個有很多欄位的配置檔案,配置檔案中的格式類似:pidstart:2600
startfid:47
starttid:450
startfirst:1
message:『『
一般會想到的是:config = open(configpath, 『r『)
for item in config:
//set value one by one
然後就想了,這麼多的字段怎麼乙個個的設定多累了,就想python可以將字串key直接作為變數多好了,就找到了:vars()>>>str = "abc"
>>>vars()[str] = "test"
>>>print(abc)
test
那這個比較繁瑣的問題解決了,剩下的就是取":"的位置,然後擷取字串了,很自然的用到切片運算:idx = item.index(『:『)
s = item[:idx]
vars()[s] = item[(idx+1):].strip(『\n『)
完整的code:try:
config = open("testconfig.ini", 『r『)
for item in config:
idx = item.index(『:『)
fname = item[:idx]
vars()[fname] = item[(idx + 1):].strip(『\n『)
config.close()
except fileexistserror:
//do something
except filenotfounderror:
//do something
except:
print(『open config file error:『+ sys.exc_info()[0])
finally:
//do something
Python交換變數值
平時時不時會面面實習生,大多數的同學在學校裡都已經掌握了python。面試的時候要求同學們實現乙個簡單的函式,交換兩個變數的值,大多數的同學給出的都是如下的答案 def swap x,y tmp x x y y tmp實際上,python中還有更簡潔的更具python風格的實現,如下 def swa...
python學習day13(交換變數值)
需求 有變數a,b交換變數 方法一 借助第三方變數 a 10b 20c 0c a a bb c print f a b a 20,b 10 方法二 利用拆包進行 a,b 1,2a,b b,a print f a b a 2,b 1我麼可以用id 來判斷兩個變數是否為同乙個值的引用,我們可以將id值理...
Makefile列印變數值
makefile第二講 列印出內容和使用變數 摘要 echo 開始生成最終執行檔案,請稍候.這一句便是將一條資訊輸出到終端,為何前邊有個 符號呢?有了這個符號該命令本身就不會輸出到終端 不理解,自己去掉或者加上 符號試試 實驗證明,字串可以不加引號。看到 objs main.o 了嗎?這就是變數的定...