在Python中解析plist文件

时间:2016-06-21 21:41:39

标签: python plist

我的Python代码存在问题。我有一个plist文件。

的Info.plist

<plist>
  <dict>
    <key>Apple Car Version</key>
    <string>1.0</string>
    <key>Last Backup Date</key>
    <date/>
    <key>Product Type</key>
    <string>iPad2,5</string>
    <key>Product Version</key>
    <string>9.3.1</string>
  </dict>
</plist>

我的Python代码

import os
import plistlib

def main():

   fileName=os.path.expanduser('Info.plist')

   if os.path.exists(fileName):

      pl=plistlib.readPlist(fileName)

      if 'Product Version' in pl:
         print( 'The aString value is %s\n' % pl['Apple Car Version'])

      else:
         print( 'There is no Apple Car Version in the plist\n')

   else:
      print( '%s does not exist, so can\'t be read' % fileName)

if __name__ == '__main__':
   main()

好的,所以我写了一些代码,但我现在面临着更大的问题,我发现这不是我的代码,而是我的plist plist中的上次备份日期会导致错误。有没有办法我只能解析字符串,而不是<date/>

顺便说一下,如果你想知道这个plist是由iTunes制作的

1 个答案:

答案 0 :(得分:0)

那个plist文件根本没有形成xml,所以我怀疑它会起作用。我认为你需要(至少)一个根plist元素和一个dict包装器:

<plist>
  <dict>
    <key>Apple Car Version</key>
    <string>1.0</string>
  </dict>
</plist>

然后pl的键将成为您在文件中实际定义的键,因此&#34; Apple Car Version&#34;在这种情况下:

print(pl['Apple Car Version'])