python 解析苹果的二进制 plist 文件,很方便:
import plistlib
with open('iconstate.plist', 'rb') as fp:
pl = plistlib.load(fp)
for icon in pl['buttonBar']:
print(icon)
for iconlist in pl['iconLists']:
print(iconlist)
# 然后就可以当做 dict 来遍历了
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>buttonBar</key>
<array>
<string>com.apple.mobilephone</string>
<string>com.apple.mobilesafari</string>
<string>com.apple.MobileSMS</string>
<string>com.apple.Music</string>
</array>
<key>iconLists</key>
<array>
<array>
<string>com.apple.mobilecal</string>
<string>com.apple.mobileslideshow</string>
<string>com.apple.camera</string>
<string>com.apple.mobilemail</string>
<string>com.apple.mobiletimer</string>
<string>com.apple.mobilenotes</string>
<string>com.apple.reminders</string>
<string>com.apple.news</string>
<string>com.apple.AppStore</string>
<dict>
<key>displayName</key>
<string>Health</string>
<key>iconLists</key>
<array>
<array>
<string>com.apple.Passbook</string>
<string>com.apple.Health</string>
</array>
</array>
<key>listType</key>
<string>folder</string>
</dict>
<string>com.apple.Preferences</string>
</array>
<array>
<string>com.apple.mobileme.fmip1</string>
<string>com.apple.MobileAddressBook</string>
<string>com.apple.DocumentsApp</string>
<string>net.whatsapp.WhatsApp</string>
<string>com.tencent.mqq</string>
<string>com.midasplayer.apps.candycrushsaga</string>
<string>com.hipsterwhale.crossy</string>
<string>com.makeover.studio</string>
</array>
</array>
</dict>
</plist>