Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

pprint मॉड्यूल (डेटा प्रिटी प्रिंटर)

pprint मॉड्यूल (lib/pprint.py) पायथन की स्टैंडर्ड लाइब्रेरी का हिस्सा है जो स्टैंडर्ड पायथन डिस्ट्रीब्यूशन के साथ वितरित होता है। pprint का नाम प्रिटी प्रिंटर के लिए है। pprint मॉड्यूल की कार्यक्षमता पायथन डेटा संरचनाओं की सौंदर्यपूर्ण रूप से अच्छी दिखने वाली उपस्थिति को सक्षम करती है। कोई भी डेटा संरचना जिसे पायथन इंटरप्रेटर द्वारा सही ढंग से पार्स किया जा सकता है, उसे सुंदरता से फॉर्मेट किया जाता है। फॉर्मेटेड एक्सप्रेशन जहां तक संभव हो एक लाइन में रखा जाता है, लेकिन यदि लंबाई फॉर्मेटिंग के चौड़ाई पैरामीटर से अधिक हो जाती है तो कई लाइनों में टूट जाती है। pprint आउटपुट की एक अनूठी विशेषता यह है कि डिक्शनरीज़ डिस्प्ले रिप्रेजेंटेशन फॉर्मेट होने से पहले स्वचालित रूप से सॉर्ट हो जाती हैं।

pprint मॉड्यूल में PrettyPrinter क्लास की परिभाषा होती है। इसका कंस्ट्रक्टर निम्न फॉर्मेट लेता है:

pprint.PrettyPrinter(indent, width, depth, stream, compact)

indent पैरामीटर प्रत्येक रिकर्सिव लेवल पर जोड़े गए इंडेंटेशन को परिभाषित करता है। डिफ़ॉल्ट 1 है।

width पैरामीटर डिफ़ॉल्ट रूप से 80 है। वांछित आउटपुट इस मान द्वारा प्रतिबंधित होता है। यदि लंबाई width से अधिक है, तो यह कई लाइनों में टूट जाती है।

depth पैरामीटर प्रिंट किए जाने वाले लेवल्स की संख्या को नियंत्रित करता है।

stream पैरामीटर डिफ़ॉल्ट रूप से std.out है - डिफ़ॉल्ट आउटपुट डिवाइस। यह किसी भी स्ट्रीम ऑब्जेक्ट जैसे फ़ाइल ले सकता है।

compact पैरामीटर डिफ़ॉल्ट रूप से False पर सेट होता है। यदि True, तो केवल width के भीतर एडजस्ट होने वाला डेटा प्रदर्शित किया जाएगा।

PrettyPrinter क्लास निम्न मेथड्स को परिभाषित करती है:

pprint() - PrettyPrinter ऑब्जेक्ट के फॉर्मेटेड रिप्रेजेंटेशन को प्रिंट करता है

pformat() - कंस्ट्रक्टर के पैरामीटर्स के आधार पर ऑब्जेक्ट के फॉर्मेटेड रिप्रेजेंटेशन को लौटाता है।

सरल उदाहरण

निम्न उदाहरण PrettyPrinter क्लास के सरल उपयोग को प्रदर्शित करता है।

import pprint

students = {
    "Dilip": ["English", "Maths", "Science"],
    "Raju": {"English": 50, "Maths": 60, "Science": 70},
    "Kalpana": (50, 60, 70)
}

pp = pprint.PrettyPrinter()
print("normal print output")
print(students)
print("----")
print("pprint output")
pp.pprint(students)

आउटपुट सामान्य और प्रिटी प्रिंट डिस्प्ले दोनों दिखाता है।

normal print output
{'Dilip': ['English', 'Maths', 'Science'], 'Raju': {'English': 50, 'Maths': 60, 'Science': 70}, 'Kalpana': (50, 60, 70)}
----
pprint output
{'Dilip': ['English', 'Maths', 'Science'],
 'Kalpana': (50, 60, 70),
 'Raju': {'English': 50, 'Maths': 60, 'Science': 70}}

pprint मॉड्यूल PrettyPrinter मेथड्स से संबंधित सुविधाजनक फ़ंक्शन्स pprint() और pformat() भी परिभाषित करता है। नीचे दिया गया उदाहरण pprint() फ़ंक्शन का उपयोग करता है।

from pprint import pprint

students = {
    "Dilip": ["English", "Maths", "Science"],
    "Raju": {"English": 50, "Maths": 60, "Science": 70},
    "Kalpana": (50, 60, 70)
}

print("normal print output")
print(students)
print("----")
print("pprint output")
pprint(students)

pformat() मेथड और फ़ंक्शन

अगला उदाहरण pformat() मेथड के साथ-साथ pformat() फ़ंक्शन का उपयोग करता है। pformat() मेथड का उपयोग करने के लिए, PrettyPrinter ऑब्जेक्ट पहले सेट अप किया जाता है। दोनों मामलों में, फॉर्मेटेड रिप्रेजेंटेशन को सामान्य print() फ़ंक्शन का उपयोग करके प्रदर्शित किया जाता है।

import pprint

students = {
    "Dilip": ["English", "Maths", "Science"],
    "Raju": {"English": 50, "Maths": 60, "Science": 70},
    "Kalpana": (50, 60, 70)
}

print("using pformat method")
pp = pprint.PrettyPrinter()
string = pp.pformat(students)
print(string)
print('------')
print("using pformat function")
string = pprint.pformat(students)
print(string)

उपरोक्त कोड का आउटपुट यहां है:

using pformat method
{'Dilip': ['English', 'Maths', 'Science'],
 'Kalpana': (50, 60, 70),
 'Raju': {'English': 50, 'Maths': 60, 'Science': 70}}
------
using pformat function
{'Dilip': ['English', 'Maths', 'Science'],
 'Kalpana': (50, 60, 70),
 'Raju': {'English': 50, 'Maths': 60, 'Science': 70}}

कस्टम क्लासेस के साथ प्रिटी प्रिंटर

प्रिटी प्रिंटर का उपयोग कस्टम क्लासेस के साथ भी किया जा सकता है। क्लास के अंदर __repr__() मेथड को ओवरराइड किया जाता है। __repr__() मेथड तब कॉल होता है जब repr() फ़ंक्शन उपयोग किया जाता है। यह पायथन ऑब्जेक्ट का आधिकारिक स्ट्रिंग रिप्रेजेंटेशन है। जब हम ऑब्जेक्ट को print() फ़ंक्शन के पैरामीटर के रूप में उपयोग करते हैं तो यह repr() फ़ंक्शन के रिटर्न मान को प्रिंट करता है।

निम्न उदाहरण में, __repr__() मेथड प्लेयर ऑब्जेक्ट का स्ट्रिंग रिप्रेजेंटेशन लौटाता है:

import pprint

class player:
    def __init__(self, name, formats=[], runs=[]):
        self.name = name
        self.formats = formats
        self.runs = runs

    def __repr__(self):
        dct = {}
        dct[self.name] = dict(zip(self.formats, self.runs))
        return (repr(dct))

l1 = ['Tests', 'ODI', 'T20']
l2 = [[140, 45, 39], [15, 122, 36, 67, 100, 49], [78, 44, 12, 0, 23, 75]]
p1 = player("virat", l1, l2)
pp = pprint.PrettyPrinter()
pp.pprint(p1)

उपरोक्त कोड का आउटपुट है:

{'virat': {'Tests': [140, 45, 39], 'ODI': [15, 122, 36, 67, 100, 49], 'T20': [78, 44, 12, 0, 23, 75]}}

pprint के साथ रिकर्सिव डेटा संरचना

जब हम pprint के साथ रिकर्सिव ऑब्जेक्ट प्रिंट करने का प्रयास करते हैं, तो केवल पहला रिप्रेजेंटेशन प्रदर्शित होता है और बाद की रिकर्सन के लिए केवल इसका रेफरेंस प्रिंट होता है।

>>> import pprint
>>> numbers = list(range(1, 6))
>>> numbers.append(numbers)
>>> print(numbers)
[1, 2, 3, 4, 5, [...]]
>>> pprint.pprint(numbers)
[1, 2, 3, 4, 5, ]

आउटपुट चौड़ाई प्रतिबंधित करना

यदि width पैरामीटर को डिफ़ॉल्ट 80 से अन्य मान पर बदला जाता है, तो आउटपुट इस तरह फॉर्मेट किया जाता है कि सिंटैक्स का उल्लंघन किए बिना कई लाइनें प्रदर्शित होती हैं।

import pprint

students = {
    "Dilip": ["English", "Maths", "Science"],
    "Raju": {"English": 50, "Maths": 60, "Science": 70},
    "Kalpana": (50, 60, 70)
}

pp = pprint.PrettyPrinter(width=20)
pp.pprint(students)

कोड इस लेख के पहले उदाहरण के समान है। हालांकि, PrettyPrinter ऑब्जेक्ट को width पैरामीटर 20 के साथ बनाया गया है। इसलिए pprint आउटपुट तदनुसार फॉर्मेट होता है।

{'Dilip': [
 'English',
 'Maths',
 'Science'],
 'Kalpana': (50,
 60,
 70),
 'Raju': {'English': 50,
 'Maths': 60,
 'Science': 70}}
  1. Python में JSON फ़ाइल को प्रिटी प्रिंट कैसे करें Python में JSON फ़ाइल को प्रिटी प्रिंट कैसे करें

    कई अन्य प्रोग्रामिंग भाषाओं की तरह, Python JavaScript ऑब्जेक्ट नोटेशन (JSON) डेटा के साथ अच्छा काम करता है। यह इस डेटा को कुछ स्रोतों से खींच सकता है और किसी अन्य फ़ाइल की तरह इसके साथ काम कर सकता है। यह तब मददगार होता है जब आप Python में JSON फ़ाइल को प्रिटी प्रिंट करना चाहते हैं। इस पोस्ट में, हम

  1. HP प्रिंटर पर प्रिंट करने के लिए Alexa कैसे प्राप्त करें HP प्रिंटर पर प्रिंट करने के लिए Alexa कैसे प्राप्त करें

    हेवलेट-पैकार्ड ने हाल ही में अपने वेब-कनेक्टेड प्रिंटर्स में वॉयस कंट्रोल जोड़ा है। Alexa, Cortana, या Google Home का उपयोग करने वाले उपभोक्ता अब कंप्यूटर खोले बिना सामान्य फॉर्म और पेपर प्रिंट कर सकते हैं। वर्तमान में विकल्प कुछ सीमित हैं, लेकिन जब आप खुद को एक पूर्व-प्रारूपित दस्तावेज़ की आवश्यकत

  1. Brother प्रिंटर  प्रिंट करने में असमर्थ  समस्या ठीक करें - चरण-दर-चरण गाइड Brother प्रिंटर 'प्रिंट करने में असमर्थ' समस्या ठीक करें - चरण-दर-चरण गाइड

    Brother प्रिंटर प्रिंट करने में असमर्थ समस्या का निवारण Brother प्रिंटर उपयोगकर्ता के रूप में, यदि आप कभी Brother प्रिंटर प्रिंट करने में असमर्थ समस्या का सामना करते हैं, तो यहां अपने Brother प्रिंटर नॉट-प्रिंटिंग मुद्दों को ठीक करने का एक पूर्ण गाइड है, हमारे साथ बने रहें अपने Brother प्रिंटर से सं