我想更新现有的" info.plist"使用python脚本在运行时文件。我正在使用plistlib模块来实现它。但是,在更新" Info.plist"
中的现有值时,我遇到了问题这是我到目前为止所尝试的内容
导入plistlib
try:
p = plistlib.readPlist(filePath)
newValue = { "ApplicationID" : "com.test.abc"}
if "ApplicationID" in p:
p["ApplicationID"].extend(newValue)
else:
p["ApplicationID"] = newValue
plistlib.writePlist(p, filePath)
except:
print "Error plist file"
如果应用程序ID不存在,那么此代码应该向plist文件添加一个条目,但如果它已经存在于Info.plist中,我应该得到一个异常和"错误plist文件"应该打印出来。
你能帮我诊断一下这段代码中的错误吗?
环境使用:
Python版本:2.7
MacOSX的
答案 0 :(得分:1)
好的,在重新阅读你的问题后,我想你只想这样做:
import plistlib
p = plistlib.readPlist(filePath)
if "ApplicationID" in p:
print "Error plist file"
else:
p["ApplicationID"] = "com.test.abc"
plistlib.writePlist(p, filePath)
只要您的plist已经是XML格式,这将有效。如果你真的想提出异常,你可以在print语句之后或代替print语句。
---编辑以回应评论---
嗯,这就是我最初对代码的期望,但是下面的描述表示如果它已经存在则需要例外,所以我认为我错了:)
在这种情况下,你只需要这样做:
import plistlib
try:
p = plistlib.readPlist(filePath)
p["ApplicationID"] = "com.test.abc"
plistlib.writePlist(p, filePath)
except:
print("Oh no! Failure :(")