Python展开包含空格的OSX路径

0 投票
1 回答
1667 浏览
提问于 2025-04-17 03:14

我正在尝试修改这个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来处理它。

撰写回答