Mac上使用Python修改.Plist文件

起因

今天遇到一個(gè)需要批量處理寫入.Plist文件的需要,一開始想直接手動(dòng)寫入,考慮的內(nèi)容比較多,手寫估計(jì)要1個(gè)小時(shí),于是想是不是可以用程序員的思維去解決這個(gè)問題,怎么解決,寫個(gè)腳本唄!程序員的天職應(yīng)該就是偷懶,不會(huì)偷懶的程序員不是好程序員。其實(shí)之前已經(jīng)有寫過一個(gè)類似的腳本,是使用oc寫的。使用oc比較自然直接,語言也比較熟悉,但是感覺這么一個(gè)小問題,還要?jiǎng)?chuàng)建一個(gè)iOS工程太麻煩,而且拷貝文件也很不方便,需要到模擬器的沙盒里面去找文件。

那用啥呢?首先我想到的便是最近火的不要不要的腳本語言Python,Python非常簡(jiǎn)單,有很多語法糖,可以快速的構(gòu)建出強(qiáng)大的功能。

Code

#!/usr/bin/env python
#coding=utf-8

import os,sys
reload(sys) 
sys.setdefaultencoding('utf-8') 

base = '/Users/XiaoYao/Desktop/'

u = u"抱抱"

for index in range(25):
    os.system('/usr/libexec/PlistBuddy -c "Set :%s:%d hug_0%02d" BigGiftList.plist'%(u, index, index+1))

心得

編碼問題

因?yàn)橐褂弥形淖址?,必須在開頭加上
#coding=utf-8
否則會(huì)報(bào)錯(cuò),
并且需要重載系統(tǒng)默認(rèn)編碼

import os,sys
reload(sys) 
sys.setdefaultencoding('utf-8')
PlistBuddy

PlistBuddy是Mac自帶的專門解析plist的小工具

  • 打印plist
/usr/libexec/PlistBuddy -c "print" info.plist
  • 添加字段
/usr/libexec/PlistBuddy -c 'Add :Version string 1.0' info.plist

先添加key值

/usr/libexec/PlistBuddy -c 'Add :Application array' info.plist
# 添加value值
yans67deMacBook-Pro:needfiles huangyg$ /usr/libexec/PlistBuddy -c 'Add :Application: string app1' info.plist
yans67deMacBook-Pro:needfiles huangyg$ /usr/libexec/PlistBuddy -c 'Add :Application: string app2' info.plist
yans67deMacBook-Pro:needfiles huangyg$ /usr/libexec/PlistBuddy -c 'Add :Application: string app3' info.plist
  • 刪除
/usr/libexec/PlistBuddy -c 'Delete :Version' info.plist
  • 修改
/usr/libexec/PlistBuddy -c 'Set :Application:1 string "thi is app1"' info.plist
  • 合并
# 將A.plist 合并到 B.plist中
/usr/libexec/PlistBuddy -c 'Merge A.plist'  B.plist

參考:
鏈接:http://m.itdecent.cn/p/2167f755c47e

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容