Python展开包含空格的OSX路径
我正在尝试修改这个plist文件:/Volumes/MacintoshHD/Users/christian/Library/Application Support/iPhone Simulator/4.3.2/Library/Preferences/com.apple.Accessibility.plist
这是我写的一个简单的Python脚本:
import plistlib
import os.path
#set path
prefs_path = os.path.expanduser("~/Library/Application\ Support/iPhone\ Simulator/5.0/Library/Preferences/com.apple.Accessibility.plist")
#parse
prefs = plistlib.readPlist(prefs_path)
但是我遇到了一个错误:IOError: 2, '没有这样的文件或目录'
如果我把路径中的反斜杠去掉,就会出现另一个错误:ExpatError: '格式不正确(无效的标记):第1行,第8列'
更新
Ignacio Vazquez-Abram的回答提到这个文件可能已经损坏。不过用Xcode可以编辑,Quicklook也能查看。而且模拟器运行得很好。
当我在TextMate中打开这个文件时,看到的内容只有这些:
bplist00ÿ
D _ApplicationAccessibilityEnabled_VOTQuickNavEnabled_AccessibilityEnabled]ScreenCurtain_"VoiceOverTouchRotorItemsPreference_AXInspector.enabled_AXInspector.frame_AXInspectorEnabled Ø"%(+.147:=@“ YRotorItemWEnabledYCharacter “ TWord “ TLine “ VHeader “ TLink “ [FormElement “# ZTableStart “&YListStart“)YLandmarks“,[VisitedLink“/^NonVisitedLink“2VButton“5YTextField“8UImage“;ZStaticText“>\InternalLink“ATZoom_{{0, 0}, {276, 166}} ;Pguö∞ƒŸ⁄€‹›Òˆ#().56;@AFRSXcdistyÉÑâïñõ™´∞∑∏Ω«»Õ”‘Ÿ‰Â͘¯˝F
请问iPhone模拟器的plist文件是不能用Python编辑的吗?还是说这个文件真的坏了?有没有解决办法?
1 个回答
3
这个“expat错误”意味着你已经找到了文件,但文件里面有问题。你需要打开这个文件,检查一下它是否被损坏了。
编辑:
哦,原来是一个二进制的plist文件。对,plistlib
处理不了这种文件。你需要用libplist
来处理它。