पायथन में, जब भी हम फ़ाइलों को पढ़ने या लिखने की कोशिश करते हैं, तो हमें किसी पुस्तकालय को आयात करने की आवश्यकता नहीं होती है क्योंकि इसे मूल रूप से संभाला जाता है।
फ़ाइल ऑब्जेक्ट प्राप्त करने के लिए सबसे पहले हम बिल्ट-इन ओपन फ़ंक्शन का उपयोग करेंगे।
खुला फ़ंक्शन एक फ़ाइल खोलता है और एक फ़ाइल ऑब्जेक्ट देता है। फ़ाइल ऑब्जेक्ट में वे विधियाँ और विशेषताएँ होती हैं जिनका उपयोग बाद में जानकारी प्राप्त करने या आपके द्वारा खोली गई फ़ाइल में हेरफेर करने के लिए किया जा सकता है।
फ़ाइल क्या है?
फाइल पर कोई भी ऑपरेशन करने से पहले, आइए पहले समझते हैं कि फाइल क्या है? फ़ाइल संबंधित जानकारी संग्रहीत करने के लिए डिस्क पर एक नामित स्थान है, क्योंकि फ़ाइल में कुछ नाम और स्थान है, यह हार्ड डिस्क में संग्रहीत है।
पायथन में, फ़ाइल संचालन निम्नलिखित क्रम में किया जाता है:
- फ़ाइल खोलना.
- पढ़ें या लिखें ऑपरेशन।
- फ़ाइल बंद करना।
फ़ाइल खोलना- ओपन() फ़ंक्शन
किसी फ़ाइल को पढ़ने या लिखने के उद्देश्य से खोलने के लिए, हमें बिल्ट-इन ओपन () फ़ंक्शन का उपयोग करना चाहिए।
ओपन () फ़ंक्शन दो तर्कों का उपयोग करता है। पहला फ़ाइल का नाम है और दूसरा यह है कि हम इसे किस उद्देश्य से खोलना चाहते हैं। पढ़ने या लिखने के लिए?
पायथन में फ़ाइल ऑब्जेक्ट खोलने का सिंटैक्स है:
File_obj = open(“filename”, “mode”)
कहां
-
File_obj जिसे हैंडल भी कहा जाता है, फ़ाइल ऑब्जेक्ट को जोड़ने के लिए चर है।
-
फ़ाइल का नाम:फ़ाइल का नाम।
-
मोड:दुभाषिया को यह बताने के लिए कि फ़ाइल का उपयोग किस तरह किया जाएगा।
>>> f = open("pytube1.py") # open file in current directory >>> f = open(r"c:\users\rajesh\Documents\readme.txt") # Open file from the given path
मोड तर्क
जैसा कि हम ऊपर से देख सकते हैं, ओपन () फ़ंक्शन को दूसरा तर्क देना वैकल्पिक है जो कि मोड है। हम फ़ाइल खोलते समय मोड निर्दिष्ट कर सकते हैं। क्या हम फ़ाइल में 'r' पढ़ना चाहते हैं, 'w' लिखना चाहते हैं या 'a' जोड़ना चाहते हैं। हम यह भी निर्दिष्ट कर सकते हैं कि क्या हम फ़ाइल को टेक्स्ट मोड या बाइनरी मोड में खोलना चाहते हैं।
डिफ़ॉल्ट मोड टेक्स्ट मोड है जहां हमें फ़ाइल से पढ़ते समय स्ट्रिंग मिलती है।
नीचे खुले () फ़ंक्शन में समर्थित विभिन्न मोड दिए गए हैं:
पायथन फ़ाइल मोड
मोड | विवरण |
---|---|
'r' | पढ़ने के लिए फ़ाइल खोलें। (डिफ़ॉल्ट) |
'w' | लिखने के लिए फ़ाइल खोलें। यदि यह मौजूद नहीं है तो एक नई फ़ाइल बनाता है या मौजूद होने पर फ़ाइल को छोटा कर देता है। |
'x' | विशिष्ट निर्माण के लिए फ़ाइल खोलें। यदि फ़ाइल पहले से मौजूद है, तो कार्रवाई विफल हो जाती है। |
'a' | फ़ाइल को काटे बिना अंत में जोड़ने के लिए खोलें। यदि यह मौजूद नहीं है तो एक नई फ़ाइल बनाता है। |
't' | टेक्स्ट मोड में खोलें। (डिफ़ॉल्ट) |
'b' | बाइनरी मोड में खोलें। |
'+' | अपडेट करने (पढ़ने और लिखने) के लिए फ़ाइल खोलें |
>>> f = open("pytube1.py") #equivalent to 'r' or 'rt' >>> f = open("pytube1.py", "w")# write in text mode >>> f = open("color3.jpg", "r+b")# read and write in binary mode
डिफ़ॉल्ट एन्कोडिंग प्लेटफ़ॉर्म निर्भर है। विंडोज़ में, यह 'cp1252' है लेकिन लिनक्स में 'utf-g' है।
एन्कोडिंग प्रकार निर्दिष्ट करने की अनुशंसा की जाती है:
>>> f = open("pytube1.py", mode = "r", encoding = 'utf-8')
एक टेक्स्ट फ़ाइल बनाएं
आइए किसी भी टेक्स्ट एडिटर या अपनी पसंद का उपयोग करके पाइथन में एक साधारण टेक्स्ट फ़ाइल बनाएं, हालांकि मैं पाइथन खोल का उपयोग कर रहा हूं ।
>>> # Create a text file named "textfile.txt" in your current working directory >>> f = open("textfile.txt", "w") >>> #above will create a file named textfile.txt in your default directory >>> f.write("Hello, Python") 13 >>> f.write("\nThis is our first line") 23 >>> f.write("\nThis is our second line") 24 >>> f.write("\nWhy writing more?, Because we can :)") 37 >>> f.close()
हम देख सकते हैं कि हमारी वर्तमान कार्यशील निर्देशिका में एक नई फ़ाइल बनाई गई है, जिसका नाम textfile.txt है और नई बनाई गई फ़ाइल को खोलने पर, हमें कुछ ऐसा दिखाई देता है:
पायथन में टेक्स्ट फ़ाइल पढ़ना
पायथन में टेक्स्ट फ़ाइल को पढ़ने के लिए, हम कई तरीकों का उपयोग कर सकते हैं।
यदि आप एक स्ट्रिंग निकालना चाहते हैं जिसमें फ़ाइल के सभी वर्ण हों। हम निम्न विधि का उपयोग कर सकते हैं:
file.read()
उपरोक्त सिंटैक्स को लागू करने का कार्यक्रम नीचे दिया गया है:
>>> f = open("textfile.txt", "r") >>> f.read() 'Hello, Python\nThis is our first line\nThis is our second line\nWhy writing more?, Because we can :)'
यदि आप किसी फ़ाइल से कुछ निश्चित वर्णों को पढ़ना चाहते हैं, तो हम इसे बहुत आसानी से कर सकते हैं।
>>> f = open("textfile.txt", "r") >>> print(f.read(13)) Hello, Python
हालाँकि, यदि आप किसी फ़ाइल को पंक्ति दर पंक्ति पढ़ना चाहते हैं तो आप रीडलाइन () फ़ंक्शन का उपयोग कर सकते हैं।
>>> f = open("textfile.txt", "r") >>> print(f.read(13)) Hello, Python >>> print(f.readline()) >>> f = open("textfile.txt", "r") >>> print(f.readline()) Hello, Python >>> print(f.readline()) This is our first line >>> print(f.readline()) This is our second line >>> print(f.readline()) Why writing more?, Because we can :)
या आप फ़ाइल में प्रत्येक पंक्ति को ठीक से अलग करना चाहते हैं, हम रीडलाइन () फ़ंक्शन का उपयोग कर सकते हैं।
>>> f = open("textfile.txt", "r") >>> print(f.readlines()) ['Hello, Python\n', 'This is our first line\n', 'This is our second line\n', 'Why writing more?, Because we can :)']
प्रत्येक पंक्ति के ऊपर अल्पविराम से अलग किया गया है।
फ़ाइल ऑब्जेक्ट पर लूप करना
यदि आप फ़ाइल से सभी पंक्तियों को सबसे संरचित और कुशल तरीके से पढ़ना या वापस करना चाहते हैं, तो हम लूप ओवर विधि का उपयोग कर सकते हैं।
>>> f = open("textfile.txt", "r") >>> for line in f: print(line) Hello, Python This is our first line This is our second line Why writing more?, Because we can :)
फ़ाइल में लिखना
किसी फ़ाइल को लिखना सरल है, आपको बस फ़ाइल को खोलना है और उस पाठ को पास करना है जिसे आप किसी फ़ाइल में लिखना चाहते हैं।
इस विधि का उपयोग हम किसी मौजूदा फ़ाइल में डेटा जोड़ने के लिए कर सकते हैं। फ़ाइल में डेटा लिखने के बाद एक नई लाइन शुरू करने के लिए EOL वर्ण का उपयोग करें।
>>> f = open("textfile.txt", "w") >>> f.write("There are tons to reason to 'fall in love with PYTHON'") 54 >>> f.write("\nSee, i have added one more line :).") 36 >>> f.close() >>> f = open("textfile.txt", "r") >>> for line in f: print(line) There are tons to reason to 'fall in love with PYTHON' See, i have added one more line :).
फ़ाइल बंद करना
एक बार जब आप फ़ाइल पर काम कर लेते हैं, तो आपको चीजों को समाप्त करने के लिए f.close () कमांड का उपयोग करना होगा। इसके साथ, हमने फ़ाइल को पूरी तरह से बंद कर दिया है, उपयोग में आने वाले सभी संसाधनों को समाप्त कर दिया है और सिस्टम को कहीं और उपयोग करने के लिए उन्हें मुक्त कर दिया है।
>>> f = open("textfile.txt", "r") >>> f.close() >>> f.readlines() Traceback (most recent call last): File "<pyshell#95>", line 1, in <module> f.readlines() ValueError: I/O operation on closed file.
एक बार फ़ाइल बंद हो जाने पर, फ़ाइल ऑब्जेक्ट का उपयोग करने का कोई भी प्रयास एक त्रुटि के माध्यम से होगा।
बयान के साथ
कथन के साथ फ़ाइल ऑब्जेक्ट्स के साथ उपयोग किया जा सकता है। दो (स्टेटमेंट और फाइल ऑब्जेक्ट्स के साथ) का उपयोग करने से हमें अपने प्रोग्राम में ज्यादा साफ-सुथरा सिंटैक्स और एक्सेप्शन हैंडलिंग मिलती है।
एक और फायदा यह है कि एक बार जब हम फाइल संचालन के साथ कर लेते हैं तो खोली गई कोई भी फाइल अपने आप बंद हो जाएगी
सिंटैक्स
फ़ाइल के रूप मेंwith open(“filename”) as file:
उदाहरण:
>>> with open("textfile.txt") as f: for line in f: print(line)के रूप में
आउटपुट
There are tons to reason to 'fall in love with PYTHON' See, i have added one more line :).
स्टेटमेंट के साथ फाइल में लिखना भी आसान है (जैसा कि आप अब तक अनुमान लगा चुके हैं)।
>>> with open("textfile.txt", "a") as f: f.write("\nHello, Python-Here i come once again!") 38 >>> with open("textfile.txt") as f: for line in f: print(line) There are tons to reason to 'fall in love with PYTHON' See, i have added one more line :). Hello, Python-Here i come once again!
टेक्स्ट फ़ाइल में पंक्तियों को विभाजित करना
हम पायथन स्प्लिट () फ़ंक्शन का उपयोग करके टेक्स्ट फ़ाइल से ली गई लाइनों को विभाजित कर सकते हैं। हम आपकी पसंद के किसी भी वर्ण का उपयोग करके अपने टेक्स्ट को विभाजित कर सकते हैं, यह या तो एक स्पेस कैरेक्टर या कोलन या कुछ और हो सकता है।
>>> with open("textfile.txt", "r") as f: data = f.readlines() for line in data: words = line.split() print(words)
आउटपुट
['There', 'are', 'tons', 'to', 'reason', 'to', "'fall", 'in', 'love', 'with', "PYTHON'"] ['See,', 'i', 'have', 'added', 'one', 'more', 'line', ':).'] ['Hello,', 'Python-Here', 'i', 'come', 'once', 'again!'] And we are going to split the text using a colon instead of a space(like above), we just need to change line.split() to line.split(“:”) and our output will be something like: ["There are tons to reason to 'fall in love with PYTHON'\n"] ['See, i have added one more line ', ').\n'] ['Hello, Python-Here i come once again!']