Writing and Reading Native Python Objects Using Pickle – eval() Function एक बहुत ही Powerful Python Tool है, जो किसी भी Python Expression को आसानी से Execute कर सकता है। यहां तक कि हम इस Function का प्रयोग करके अपने Computer System की सभी Files को Delete भी कर सकते हैं। इसीलिए Python Programming में इस Function को बहुत ही Rare Situation में Use किया जाता है। बल्कि इसके स्थान पर एक ज्यादा Safe Standard Library Module pickle को Use करते हुए eval() Function से सम्बंधित जरूरतों को पूरा किया जाता है।
pickle Module एक ज्यादा Advanced Module है, जिसका प्रयोग करते हुए किसी किसी भी Python Objects को ज्यादा Safe व सरल तरीके से File में Write किया जा सकता है व उतने ही Safe व सरल तरीके से File से Read भी किया जा सकता है।
जब हम इस Module का प्रयोग करते हुए Python Objects को File के साथ Use करते हैं, तब हमें Object को File में Write करते समय Object to String Conversion और Object को File से Read करते समय String to Object Conversion नहीं करना पड़ता। इस तरह से pickle Module एक प्रकार से Super-General Data Formatting and Parsing Utility की तरह Use किया जा सकता है।
इसे समझने के लिए हम हमारे पिछले Example Program को ही निम्नानुसार Modify कर सकते हैं, जहां Objects को बिना कोई Conversion किए हुए Directly File में Write करने और Directly File से Read करने के लिए pickle Module को Use किया गया है-
[code] FileName: pickleModule.py import pickle intObject = 1221 fltObject = 1312.232 strObject = "This is String Content." lstObject = ['This','is','List','Content'] dicObject = {'key1':'This','key2':'is', 'key3':'Dictionary'} tplObject = ('This','is','Tuple','Content') print("Create File data.txt in Writing Mode \n") fpNames = open("data.txt","wb") pickle.dump(intObject, fpNames) pickle.dump(fltObject, fpNames) pickle.dump(strObject, fpNames) pickle.dump(lstObject, fpNames) pickle.dump(dicObject, fpNames) pickle.dump(tplObject, fpNames) fpNames.close() print("Open File data.txt in Reading Mode") fpNames = open("data.txt","rb") intLine1 = pickle.load(fpNames) fltLine2 = pickle.load(fpNames) strLine3 = pickle.load(fpNames) lstLine4 = pickle.load(fpNames) dicLine5 = pickle.load(fpNames) tplLine6 = pickle.load(fpNames) print(intLine1) print(fltLine2) print(strLine3) print(lstLine4) print(dicLine5) print(tplLine6) print() print("List, Dictionary and Tuple Processing") print(lstLine4[0], dicLine5['key2'], tplLine6[3] ) fpNames.close() Output Create File data.txt in Writing Mode Open File data.txt in Reading Mode 1221 1312.232 This is String Content. ['This', 'is', 'List', 'Content'] {'key1': 'This', 'key2': 'is', 'key3': 'Dictionary'} ('This', 'is', 'Tuple', 'Content') List, Dictionary and Tuple Processing This is Content [/code]
इस Example में हमने pickle Module को Import किया है। चूंकि इस Module को Mostly केवल Binary Data को File में Write व File से Read करने के लिए ही Use किया जाता है, इसीलिए इस Example में हमने हमारी File को Binary Mode में ही Open किया है। साथ ही File में Objects को Write करने के लिए ये Module हमें pickle.dump() Method Provide करता है, जबकि File के Data को Read करने के लिए हमें pickle.load() Method को Use करना पड़ता है।
बाकी का सारा Program Exactly पिछले वाले Program के समान ही है। इसीलिए हमें जो Output प्राप्त हो रहा है, वो भी पिछले Program के जैसा ही है। अन्तर केवल इतना है कि पिछले Program में हमने Integer व Floating Point Value दोनों को File की First Line में Write कर दिया था, जबकि इस Program में हमने इन दोनों को दो अलग Lines में Write किया है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Python in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।
Python in Hindi | Page: 602 | Format: PDF