最近遇到一個業(yè)務(wù)需求,需要在linux機器上編輯修改plist文件。
在mac os上有一個/usr/libexec/PlistBuddy的工具殖熟,可以方便地對plist文件進行讀寫保存。但是linux上是沒有這個工具的,google了一下妒蛇,python有一個工具叫biplist可以對plist進行處理,于是一頓操作如下:
安裝biplist
pip install biplist
使用biplist
#讀取plist文件
plist=readPlist(plist_path)
#讀取某個key的值
bundle_id=plist['CFBundleIdentifier']
#修改某個key的值
plist['CFBundleIdentifier'] = new_bundle_id
#保存文件
writePlist(plist, plist_path)
中文亂碼問題
本以為都很完美楷拳,但最后一步绣夺,保存文件的時候發(fā)現(xiàn)只要plist文件中有中文,保存之后就是亂碼欢揖,Xcode打不開陶耍,又是一頓google,毫無收獲她混。
于是便去查看biplist的源碼烈钞,想看看writePlist這個方法是怎么寫的
源碼在此:
https://bitbucket.org/wooster/biplist/src/master/biplist/init.py
可以看到writePlist可以有3個參數(shù)的泊碑,加上binary=False完美解決中文亂碼問題
writePlist(plist, plist_path,binary=False)
如果本文幫你解決了問題,點個贊唄~