अब तक, आप स्टैंडर्ड इनपुट और आउटपुट से पढ़ और लिख रहे थे। अब, हम देखेंगे कि वास्तविक डेटा फाइलों का उपयोग कैसे करें।
पायथन डिफ़ॉल्ट रूप से फाइलों को मैनिपुलेट करने के लिए आवश्यक बेसिक फ़ंक्शन्स और मेथड्स प्रदान करता है। आप एक file ऑब्जेक्ट का उपयोग करके अधिकांश फाइल मैनिपुलेशन कर सकते हैं।
open फ़ंक्शन
इससे पहले कि आप कोई फाइल पढ़ या लिख सकें, आपको इसे पायथन के बिल्ट-इन open() फ़ंक्शन का उपयोग करके खोलना होगा। यह फ़ंक्शन एक file ऑब्जेक्ट बनाता है, जिसका उपयोग इससे जुड़े अन्य सपोर्ट मेथड्स को कॉल करने के लिए किया जाएगा।
सिंटैक्स
file object = open(file_name [, access_mode][, buffering])
पैरामीटर विवरण:
- file_name - file_name आर्गुमेंट एक स्ट्रिंग मान है जिसमें उस फाइल का नाम होता है जिसे आप एक्सेस करना चाहते हैं।
- access_mode - access_mode वह मोड निर्धारित करता है जिसमें फाइल को खोला जाना है, यानी रीड, राइट, अपेंड, आदि। संभावित मानों की पूरी सूची नीचे दी गई तालिका में दी गई है। यह वैकल्पिक पैरामीटर है और डिफ़ॉल्ट फाइल एक्सेस मोड रीड (r) है।
- buffering - यदि बफरिंग मान 0 पर सेट है, तो कोई बफरिंग नहीं होती। यदि बफरिंग मान 1 है, तो फाइल एक्सेस करते समय लाइन बफरिंग की जाती है। यदि आप बफरिंग मान को 1 से अधिक इंटीजर के रूप में निर्दिष्ट करते हैं, तो बफरिंग क्रिया इंगित बफर आकार के साथ की जाती है। यदि नकारात्मक, तो बफर आकार सिस्टम डिफ़ॉल्ट होता है (डिफ़ॉल्ट व्यवहार)।
फाइल खोलने के विभिन्न मोड्स की सूची:
| क्र.सं. | मोड्स और विवरण |
|---|---|
| 1 | r केवल पढ़ने के लिए फाइल खोलता है। फाइल पॉइंटर फाइल की शुरुआत में रखा जाता है। यह डिफ़ॉल्ट मोड है। |
| 2 | rb बाइनरी फॉर्मेट में केवल पढ़ने के लिए फाइल खोलता है। फाइल पॉइंटर फाइल की शुरुआत में रखा जाता है। यह डिफ़ॉल्ट मोड है। |
| 3 | r+ पढ़ने और लिखने दोनों के लिए फाइल खोलता है। फाइल पॉइंटर फाइल की शुरुआत में रखा जाता है। |
| 4 | rb+ बाइनरी फॉर्मेट में पढ़ने और लिखने दोनों के लिए फाइल खोलता है। फाइल पॉइंटर फाइल की शुरुआत में रखा जाता है। |
| 5 | w केवल लिखने के लिए फाइल खोलता है। यदि फाइल मौजूद है तो ओवरराइट करता है। यदि फाइल मौजूद नहीं है, तो लिखने के लिए नई फाइल बनाता है। |
| 6 | wb बाइनरी फॉर्मेट में केवल लिखने के लिए फाइल खोलता है। यदि फाइल मौजूद है तो ओवरराइट करता है। यदि फाइल मौजूद नहीं है, तो लिखने के लिए नई फाइल बनाता है। |
| 7 | w+ लिखने और पढ़ने दोनों के लिए फाइल खोलता है। यदि फाइल मौजूद है तो मौजूदा फाइल को ओवरराइट करता है। यदि फाइल मौजूद नहीं है, तो पढ़ने और लिखने के लिए नई फाइल बनाता है। |
| 8 | wb+ बाइनरी फॉर्मेट में लिखने और पढ़ने दोनों के लिए फाइल खोलता है। यदि फाइल मौजूद है तो मौजूदा फाइल को ओवरराइट करता है। यदि फाइल मौजूद नहीं है, तो पढ़ने और लिखने के लिए नई फाइल बनाता है। |
| 9 | a अपेंडिंग के लिए फाइल खोलता है। यदि फाइल मौजूद है तो फाइल पॉइंटर फाइल के अंत में होता है। यानी फाइल अपेंड मोड में है। यदि फाइल मौजूद नहीं है, तो लिखने के लिए नई फाइल बनाता है। |
| 10 | ab बाइनरी फॉर्मेट में अपेंडिंग के लिए फाइल खोलता है। यदि फाइल मौजूद है तो फाइल पॉइंटर फाइल के अंत में होता है। यानी फाइल अपेंड मोड में है। यदि फाइल मौजूद नहीं है, तो लिखने के लिए नई फाइल बनाता है। |
| 11 | a+ अपेंडिंग और पढ़ने दोनों के लिए फाइल खोलता है। यदि फाइल मौजूद है तो फाइल पॉइंटर फाइल के अंत में होता है। फाइल अपेंड मोड में खुलती है। यदि फाइल मौजूद नहीं है, तो पढ़ने और लिखने के लिए नई फाइल बनाता है। |
| 12 | ab+ बाइनरी फॉर्मेट में अपेंडिंग और पढ़ने दोनों के लिए फाइल खोलता है। यदि फाइल मौजूद है तो फाइल पॉइंटर फाइल के अंत में होता है। फाइल अपेंड मोड में खुलती है। यदि फाइल मौजूद नहीं है, तो पढ़ने और लिखने के लिए नई फाइल बनाता है। |
file ऑब्जेक्ट एट्रिब्यूट्स
एक बार फाइल खुल जाने और आपके पास एक file ऑब्जेक्ट होने पर, आप उस फाइल से संबंधित विभिन्न जानकारी प्राप्त कर सकते हैं।
फाइल ऑब्जेक्ट से संबंधित सभी एट्रिब्यूट्स की सूची:
| क्र.सं. | मोड्स और विवरण |
|---|---|
| 1 | file.closed यदि फाइल बंद है तो true लौटाता है, अन्यथा false। |
| 2 | file.mode वह एक्सेस मोड लौटाता है जिससे फाइल खोली गई थी। |
| 3 | file.name फाइल का नाम लौटाता है। |
| 4 | file.softspace यदि प्रिंट के साथ स्पेस स्पष्ट रूप से आवश्यक है तो false लौटाता है, अन्यथा true। |
उदाहरण
#!/usr/bin/python
# एक फाइल खोलें
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace
आउटपुट
यह निम्नलिखित परिणाम देता है:
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
close() मेथड
file ऑब्जेक्ट का close() मेथड किसी भी अनरिटन जानकारी को फ्लश करता है और फाइल ऑब्जेक्ट को बंद करता है, जिसके बाद कोई और लिखना नहीं किया जा सकता।
पायथन स्वचालित रूप से एक फाइल को बंद कर देता है जब फाइल का रेफरेंस ऑब्जेक्ट किसी अन्य फाइल को पुनः असाइन किया जाता है। फाइल को बंद करने के लिए close() मेथड का उपयोग करना एक अच्छी प्रथा है।
सिंटैक्स
fileObject.close()
उदाहरण
#!/usr/bin/python
# एक फाइल खोलें
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
# खुली फाइल बंद करें
fo.close()
आउटपुट
यह निम्नलिखित परिणाम देता है:
Name of the file: foo.txt