Python 3.7

plistlib - Mac OS X .plist फ़ाइलों को जनरेट और पार्स करें




python

plistlib - Mac OS X .plist फ़ाइलों को जनरेट और पार्स करें

स्रोत कोड: Lib/plistlib.py

यह मॉड्यूल मैक ओएस एक्स द्वारा मुख्य रूप से उपयोग की जाने वाली "संपत्ति सूची" फ़ाइलों को पढ़ने और लिखने के लिए एक इंटरफ़ेस प्रदान करता है और दोनों बाइनरी और एक्सएमएल प्लिस्ट फ़ाइलों का समर्थन करता है।

प्रॉपर्टी लिस्ट ( .plist ) फ़ाइल फॉर्मेट एक साधारण क्रमांकन है, जो मूल ऑब्जेक्ट प्रकारों जैसे शब्दकोशों, सूचियों, संख्याओं और तारों का समर्थन करता है। आमतौर पर शीर्ष स्तर की वस्तु एक शब्दकोश है।

एक फ़ाइल को लिखने और पार्स करने के लिए, dump() और load() फ़ंक्शन का उपयोग करें।

बाइट्स ऑब्जेक्ट्स में प्लिस्ट डेटा के साथ काम करने के लिए, dumps() और loads()

मान तार, पूर्णांक, फ़्लोट्स, बूलियन, ट्यूपल्स, सूचियाँ, शब्दकोष (लेकिन केवल स्ट्रिंग कुंजियों के साथ), Data , bytes , bytesarray या bytesarray ऑब्जेक्ट हो सकते हैं।

संस्करण 3.4 में परिवर्तित: नया एपीआई, पुराना एपीआई अपदस्थ। बाइनरी फॉरमेट प्लिस्ट के लिए समर्थन जोड़ा गया।

यह भी देखें

PList मैनुअल पेज
फ़ाइल स्वरूप का Apple दस्तावेज़ीकरण।

यह मॉड्यूल निम्नलिखित कार्यों को परिभाषित करता है:

plistlib.load(fp, *, fmt=None, use_builtin_types=True, dict_type=dict)

एक प्लास्ट फाइल पढ़ें। fp एक पठनीय और बाइनरी फाइल ऑब्जेक्ट होना चाहिए। अनपैक्ड रूट ऑब्जेक्ट (जो आमतौर पर एक शब्दकोश है) को लौटाएं।

Fmt फ़ाइल का प्रारूप है और निम्नलिखित मान मान्य हैं:

  • None : फ़ाइल फॉर्मेट को ऑटोडेट करें
  • FMT_XML : XML फ़ाइल स्वरूप
  • FMT_BINARY : बाइनरी FMT_BINARY प्रारूप

यदि use_builtin_types सत्य है (डिफ़ॉल्ट) बाइनरी डेटा bytes उदाहरणों के रूप में वापस आ जाएगा, अन्यथा यह Data उदाहरणों के रूप में वापस आ जाता है।

Dict_type शब्दकोषों के लिए उपयोग किया जाने वाला प्रकार है जो कि plist फ़ाइल से पढ़ा जाता है।

FMT_XML प्रारूप के लिए XML डेटा को FMT_XML से Expat parser का उपयोग करके पार्स किया जाता है - इसके गठन को xml.parsers.expat XML पर संभावित अपवादों के लिए देखें। अज्ञात तत्वों को केवल प्लिस्ट पार्सर द्वारा अनदेखा किया जाएगा।

बाइनरी प्रारूप के लिए पार्सर InvalidFileException उठाता है जब फ़ाइल पार्स नहीं की जा सकती।

संस्करण 3.4 में नया।

plistlib.loads(data, *, fmt=None, use_builtin_types=True, dict_type=dict)

एक बाइट्स ऑब्जेक्ट से एक प्लस्ट लोड करें। कीवर्ड तर्कों की व्याख्या के लिए load() देखें।

संस्करण 3.4 में नया।

plistlib.dump(value, fp, *, fmt=FMT_XML, sort_keys=True, skipkeys=False)

एक plist फ़ाइल के लिए मूल्य लिखें। एफपी एक लेखन योग्य, बाइनरी फ़ाइल ऑब्जेक्ट होना चाहिए।

Fmt तर्क plist फ़ाइल के प्रारूप को निर्दिष्ट करता है और निम्नलिखित मानों में से एक हो सकता है:

  • FMT_XML : XML स्वरूपित plist फ़ाइल
  • FMT_BINARY : बाइनरी स्वरूपित plist फ़ाइल

जब Sort_keys सत्य होता है (शब्दकोशों के लिए डिफ़ॉल्ट) सॉर्ट क्रम में प्लिस्ट को लिखा जाएगा, अन्यथा उन्हें शब्दकोश के पुनरावृत्ति क्रम में लिखा जाएगा।

जब स्किपस्टिक्स झूठा होता है (डिफ़ॉल्ट) फ़ंक्शन तब उठता है जब शब्दकोश की एक कुंजी स्ट्रिंग नहीं होती है, अन्यथा ऐसी चाबियाँ छोड़ दी जाती हैं।

यदि कोई असमर्थित प्रकार या किसी कंटेनर में असमर्थित प्रकार की ऑब्जेक्ट्स हैं, तो एक TypeError उठाया जाएगा।

एक OverflowError को पूर्णांक मानों के लिए उठाया जाएगा जिन्हें (बाइनरी) प्लिस्ट फ़ाइलों में प्रतिनिधित्व नहीं किया जा सकता है।

संस्करण 3.4 में नया।

plistlib.dumps(value, *, fmt=FMT_XML, sort_keys=True, skipkeys=False)

प्लिस्ट-स्वरूपित बाइट्स ऑब्जेक्ट के रूप में मान लौटाएं। इस फ़ंक्शन के कीवर्ड तर्कों की व्याख्या के लिए dump() लिए प्रलेखन देखें।

संस्करण 3.4 में नया।

निम्नलिखित कार्यों को पदावनत किया गया है:

plistlib.readPlist(pathOrFile)

एक प्लास्ट फाइल पढ़ें। pathOrFile फ़ाइल नाम या (पठनीय और बाइनरी) फ़ाइल ऑब्जेक्ट हो सकती है। अनपैक्ड रूट ऑब्जेक्ट (जो आमतौर पर एक शब्दकोश है) देता है।

यह फ़ंक्शन load() को वास्तविक कार्य करने के लिए कहता है, कीवर्ड तर्कों की व्याख्या के लिए load() के दस्तावेज़ देखें।

संस्करण 3.4 के बाद से पदावनत: इसके बजाय load() उपयोग करें।

संस्करण 3.7 में परिवर्तित: परिणाम में डिक्ट मान अब सामान्य डिक्ट हैं। अब आप इन शब्दकोशों के आइटम तक पहुँचने के लिए विशेषता पहुँच का उपयोग नहीं कर सकते हैं।

plistlib.writePlist(rootObject, pathOrFile)

XML प्लिस्ट फ़ाइल में rootObject लिखें। pathOrFile फ़ाइल नाम या (लेखन योग्य और बाइनरी) फ़ाइल ऑब्जेक्ट हो सकती है

संस्करण 3.4 के बाद से पदावनत: इसके बजाय dump() उपयोग करें।

plistlib.readPlistFromBytes(data)

एक बाइट्स ऑब्जेक्ट से एक प्लिस्ट डेटा पढ़ें। रूट ऑब्जेक्ट वापस करें।

कीवर्ड तर्कों के विवरण के लिए load() देखें।

संस्करण 3.4 के बाद से पदावनत: इसके बजाय loads() उपयोग करें।

संस्करण 3.7 में परिवर्तित: परिणाम में डिक्ट मान अब सामान्य डिक्ट हैं। अब आप इन शब्दकोशों के आइटम तक पहुँचने के लिए विशेषता पहुँच का उपयोग नहीं कर सकते हैं।

plistlib.writePlistToBytes(rootObject)

किसी XML plist- स्वरूपित बाइट्स ऑब्जेक्ट के रूप में rootObject पर लौटें।

संस्करण 3.4 के बाद से पदावनत: इसके बजाय dumps() उपयोग करें।

निम्नलिखित कक्षाएं उपलब्ध हैं:

class plistlib.Data(data)

बाइट्स ऑब्जेक्ट डेटा के आसपास एक "डेटा" आवरण वस्तु लौटें। इसका उपयोग पौधों में उपलब्ध <data> प्रकार का प्रतिनिधित्व करने के लिए / plist से कार्य करने में किया जाता है।

इसकी एक विशेषता, data , जिसका उपयोग इसमें संग्रहीत पायथन बाइट्स ऑब्जेक्ट को पुनः प्राप्त करने के लिए किया जा सकता है।

संस्करण 3.4 के बाद से पदावनत: इसके बजाय bytes ऑब्जेक्ट का उपयोग करें।

निम्नलिखित स्थिरांक उपलब्ध हैं:

plistlib.FMT_XML

Plist फ़ाइलों के लिए XML प्रारूप।

संस्करण 3.4 में नया।

plistlib.FMT_BINARY

प्लिस्ट फ़ाइलों के लिए द्विआधारी प्रारूप

संस्करण 3.4 में नया।

उदाहरण

एक पीढ़ी उत्पन्न करना:

pl = dict(
    aString = "Doodah",
    aList = ["A", "B", 12, 32.1, [1, 2, 3]],
    aFloat = 0.1,
    anInt = 728,
    aDict = dict(
        anotherString = "<hello & hi there!>",
        aThirdString = "M\xe4ssig, Ma\xdf",
        aTrueValue = True,
        aFalseValue = False,
    ),
    someData = b"<binary gunk>",
    someMoreData = b"<lots of binary gunk>" * 10,
    aDate = datetime.datetime.fromtimestamp(time.mktime(time.gmtime())),
)
with open(fileName, 'wb') as fp:
    dump(pl, fp)

एक पलस को पार्स करना:

with open(fileName, 'rb') as fp:
    pl = load(fp)
print(pl["aKey"])