2014-06-10 2 views
0

런타임시 기존 "info.plist"파일의 값을 python 스크립트로 업데이트하고 싶습니다. 그것을 달성하기 위해 plistlib 모듈을 사용하고 있습니다. "의 Info.plist"여기plistlib가 기존 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 파일"이 인쇄되어야합니다.

이 코드의 문제점을 진단 해 주시겠습니까?

봉투 사용 :

파이썬 버전 : 2.7
에서라도

답변

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 문을 사용할 수 있습니다.

--- 응답 편집 의견을 ---

글쎄, 그건 내가 원래 코드에서 기대했던 것,하지만 이미 존재하는 경우에 예외를 원했다, 그래서 내가 생각했던 그 아래에 설명 I

import plistlib 

try: 
    p = plistlib.readPlist(filePath) 
    p["ApplicationID"] = "com.test.abc" 
    plistlib.writePlist(p, filePath) 
except: 
    print("Oh no! Failure :(") 
+0

미안 내가 '질문에 명확하지 않았다 경우지만 다른 PLIST에 존재하지 않는 경우 내가 새 항목을 추가 할 : 당신은이 작업을 수행 할 필요가있는 경우

: 잘못 기존 항목을 새 값으로 업데이트하려고합니다. – iamMobile

관련 문제