python讀寫plist資料
阿新 • • 發佈:2019-01-25
1 關於 plist 檔案
通俗一句話介紹: mac os和ios中的一種二進位制的XML配置檔案
更準確詳細的介紹: 參考 “IOS plist檔案 http://www.cnblogs.com/geraldzhang/archive/2011/08/24/2152121.html ”
2 在 mac os和ios開發比如cocoa 中,非常好讀寫plist檔案,參考1中提到的文章即可。
3 現在有這樣一個應用場景: ios app的打包檔案.ipa中,使用plist檔案儲存了一些配置,每次釋出之前需要標記版本、渠道等資訊,渠道可能有N多個,所以需要在釋出流程中根據渠道配置來分別更新plist檔案中的某個或某幾個key的值,以實現新版本的多渠道分發。
比如這裡我們選用python指令碼實現釋出功能:
3.1 流程: .ipa包是標準zip包,所以直接zip解壓,然後找到plist檔案,讀入,找到相應key,更新value,寫到另一個檔案,然後刪除舊的,再重新命名。
3.2 python 實現?
python讀寫plist檔案,參考這裡 “ Python module for binary plist http://stackoverflow.com/questions/3725268/python-module-for-binary-plist ”
筆者最後選擇了 biplist 專案 : https://github.com/wooster/biplist
<span style="margin: 0px; padding: 0px; ">Plist generation example:</span> from biplist import * from datetime import datetime plist = {'aKey':'aValue', '0':1.322, 'now':datetime.now(), 'list':[1,2,3], 'tuple':('a','b','c') } try: writePlist(plist, "example.plist") except (InvalidPlistException, NotBinaryPlistException), e: print "Something bad happened:", e
<span style="margin: 0px; padding: 0px; ">Plist parsing example:</span>
from biplist import *
try:
plist = readPlist("example.plist")
print plist
except (InvalidPlistException, NotBinaryPlistException), e:
print "Not a plist:", e