पायथन 3 - फ़ाइलें I / O

यह अध्याय पायथन 3 में उपलब्ध सभी बुनियादी I / O फ़ंक्शन को शामिल करता है। अधिक कार्यों के लिए, कृपया मानक पायथन प्रलेखन को देखें।

स्क्रीन पर मुद्रण

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

#!/usr/bin/python3

print ("Python is really a great language,", "isn't it?")

यह आपके मानक स्क्रीन पर निम्न परिणाम उत्पन्न करता है -

Python is really a great language, isn't it?

कीबोर्ड इनपुट पढ़ना

पायथन 2 में मानक इनपुट से डेटा पढ़ने के लिए दो अंतर्निहित कार्य हैं, जो डिफ़ॉल्ट रूप से कीबोर्ड से आता है। ये कार्य हैंinput() तथा raw_input()

पायथन 3 में, raw_input () फ़ंक्शन को हटा दिया गया है। इसके अलावा, इनपुट () फ़ंक्शन कीबोर्ड के डेटा को स्ट्रिंग के रूप में पढ़ते हैं, भले ही यह उद्धरण ('' या "") के साथ संलग्न हो या नहीं।

इनपुट समारोह

input([prompt]) फ़ंक्शन रॉ_इनपुट के बराबर है, सिवाय इसके कि यह मानता है कि इनपुट एक वैध पायथन अभिव्यक्ति है और मूल्यांकन किए गए परिणाम को आपके पास लौटाता है।

#!/usr/bin/python3

>>> x = input("something:")
something:10

>>> x
'10'

>>> x = input("something:")
something:'10' #entered data treated as string with or without ''

>>> x
"'10'"

फ़ाइलें खोलना और बंद करना

अब तक, आप मानक इनपुट और आउटपुट को पढ़ते और लिखते रहे हैं। अब, हम देखेंगे कि वास्तविक डेटा फ़ाइलों का उपयोग कैसे करें।

पायथन डिफ़ॉल्ट रूप से फ़ाइलों में हेरफेर करने के लिए आवश्यक बुनियादी कार्य और तरीके प्रदान करता है। आप एक का उपयोग कर फ़ाइल हेरफेर के अधिकांश कर सकते हैंfile वस्तु।

खुला समारोह

किसी फ़ाइल को पढ़ने या लिखने से पहले, आपको इसे पायथन के बिल्ट-इन ओपन () फ़ंक्शन का उपयोग करके खोलना होगा। यह फंक्शन क्रिएट करता हैfile ऑब्जेक्ट, जिसका उपयोग इसके साथ जुड़े अन्य समर्थन विधियों को कॉल करने के लिए किया जाएगा।

वाक्य - विन्यास

file object = open(file_name [, access_mode][, buffering])

यहाँ पैरामीटर विवरण हैं -

  • file_name - file_name तर्क एक स्ट्रिंग मान है जिसमें उस फ़ाइल का नाम है जिसे आप एक्सेस करना चाहते हैं।

  • access_mode- access_mode उस मोड को निर्धारित करता है जिसमें फ़ाइल को खोलना होता है, अर्थात, पढ़ना, लिखना, अपेंड करना, आदि संभावित मानों की पूरी सूची नीचे दी गई है। यह एक वैकल्पिक पैरामीटर है और डिफ़ॉल्ट फ़ाइल एक्सेस मोड पढ़ा जाता है (आर)।

  • buffering- यदि बफ़रिंग मान 0 पर सेट है, तो कोई बफ़रिंग नहीं होती है। यदि बफ़रिंग मान 1 है, तो फ़ाइल को एक्सेस करते समय लाइन बफ़रिंग किया जाता है। यदि आप बफ़रिंग मान को 1 से अधिक पूर्णांक के रूप में निर्दिष्ट करते हैं, तो बफ़रिंग क्रिया को संकेत बफ़र आकार के साथ किया जाता है। यदि नकारात्मक है, तो बफ़र आकार सिस्टम डिफ़ॉल्ट (डिफ़ॉल्ट व्यवहार) है।

यहाँ एक फ़ाइल खोलने के विभिन्न तरीकों की एक सूची है -

अनु क्रमांक। मोड और विवरण
1

r

केवल पढ़ने के लिए एक फ़ाइल खोलता है। फ़ाइल पॉइंटर को फ़ाइल की शुरुआत में रखा जाता है। यह डिफ़ॉल्ट मोड है।

2

rb

केवल बाइनरी प्रारूप में पढ़ने के लिए एक फ़ाइल खोलता है। फ़ाइल पॉइंटर को फ़ाइल की शुरुआत में रखा जाता है। यह डिफ़ॉल्ट मोड है।

3

r+

पढ़ने और लिखने दोनों के लिए एक फाइल खोलता है। फ़ाइल पॉइंटर फ़ाइल की शुरुआत में रखा गया है।

4

rb+

द्विआधारी प्रारूप में पढ़ने और लिखने दोनों के लिए एक फ़ाइल खोलता है। फ़ाइल पॉइंटर फ़ाइल की शुरुआत में रखा गया है।

5

w

केवल लिखने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल को ओवरराइट करता है। यदि फ़ाइल मौजूद नहीं है, तो लिखने के लिए एक नई फ़ाइल बनाता है।

6

wb

केवल बाइनरी प्रारूप में लिखने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल को ओवरराइट करता है। यदि फ़ाइल मौजूद नहीं है, तो लिखने के लिए एक नई फ़ाइल बनाता है।

7

w+

लिखने और पढ़ने दोनों के लिए एक फाइल खोलता है। मौजूदा फ़ाइल को अधिलेखित कर देता है यदि फ़ाइल मौजूद है। यदि फ़ाइल मौजूद नहीं है, तो पढ़ने और लिखने के लिए एक नई फ़ाइल बनाता है।

8

wb+

द्विआधारी प्रारूप में लिखने और पढ़ने दोनों के लिए एक फ़ाइल खोलता है। मौजूदा फ़ाइल को अधिलेखित कर देता है यदि फ़ाइल मौजूद है। यदि फ़ाइल मौजूद नहीं है, तो पढ़ने और लिखने के लिए एक नई फ़ाइल बनाता है।

9

a

अपील करने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल पॉइंटर फ़ाइल के अंत में है। यही है, फ़ाइल एपेंड मोड में है। यदि फ़ाइल मौजूद नहीं है, तो यह लिखने के लिए एक नई फ़ाइल बनाता है।

10

ab

द्विआधारी प्रारूप में संलग्न करने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल पॉइंटर फ़ाइल के अंत में है। यही है, फ़ाइल एपेंड मोड में है। यदि फ़ाइल मौजूद नहीं है, तो यह लिखने के लिए एक नई फ़ाइल बनाता है।

1 1

a+

दोनों को जोड़ने और पढ़ने के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल पॉइंटर फ़ाइल के अंत में है। फ़ाइल परिशिष्ट मोड में खुलती है। यदि फ़ाइल मौजूद नहीं है, तो यह पढ़ने और लिखने के लिए एक नई फ़ाइल बनाता है।

12

ab+

द्विआधारी प्रारूप में संलग्न और पढ़ने दोनों के लिए एक फ़ाइल खोलता है। यदि फ़ाइल मौजूद है, तो फ़ाइल पॉइंटर फ़ाइल के अंत में है। फ़ाइल परिशिष्ट मोड में खुलती है। यदि फ़ाइल मौजूद नहीं है, तो यह पढ़ने और लिखने के लिए एक नई फ़ाइल बनाता है।

फ़ाइल ऑब्जेक्ट विशेषताएँ

एक बार जब कोई फ़ाइल खोली जाती है और आपके पास एक फ़ाइल ऑब्जेक्ट होता है, तो आप उस फ़ाइल से संबंधित विभिन्न जानकारी प्राप्त कर सकते हैं।

यहाँ फ़ाइल ऑब्जेक्ट से संबंधित सभी विशेषताओं की एक सूची दी गई है -

अनु क्रमांक। विशेषता और विवरण
1

file.closed

यदि फ़ाइल बंद है, तो सत्य है, अन्यथा गलत।

2

file.mode

किस फ़ाइल के साथ एक्सेस मोड लौटाया गया था।

3

file.name

फ़ाइल का नाम लौटाता है।

Note - Python 3.x में softspace विशेषता समर्थित नहीं है

उदाहरण

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
print ("Closed or not : ", fo.closed)
print ("Opening mode : ", fo.mode)
fo.close()

यह निम्न परिणाम उत्पन्न करता है -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb

करीब () विधि

किसी फ़ाइल ऑब्जेक्ट का क्लोज़ () तरीका किसी भी अलिखित जानकारी को फ्लश करता है और फ़ाइल ऑब्जेक्ट को बंद कर देता है, जिसके बाद कोई और लेखन नहीं किया जा सकता है।

पायथन स्वचालित रूप से एक फ़ाइल को बंद कर देता है जब किसी फ़ाइल का संदर्भ ऑब्जेक्ट किसी अन्य फ़ाइल को पुन: असाइन किया जाता है। किसी फ़ाइल को बंद करने के लिए क्लोज़ () पद्धति का उपयोग करना एक अच्छा अभ्यास है।

वाक्य - विन्यास

fileObject.close();

उदाहरण

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)

# Close opened file
fo.close()

यह निम्न परिणाम उत्पन्न करता है -

Name of the file:  foo.txt

फाइल पढ़ना और लिखना

फ़ाइल ऑब्जेक्ट हमारे जीवन को आसान बनाने के लिए एक्सेस विधियों का एक सेट प्रदान करता है। हम देखेंगे कि कैसे उपयोग करना हैread() तथा write() फ़ाइलों को पढ़ने और लिखने के तरीके।

लेखन () विधि

write()विधि किसी भी स्ट्रिंग को एक खुली फ़ाइल में लिखती है। यह ध्यान रखना महत्वपूर्ण है कि पायथन तार में बाइनरी डेटा हो सकता है और न केवल पाठ।

लेखन () विधि स्ट्रिंग के अंत में एक नई पंक्ति वर्ण ('\ n') नहीं जोड़ता है -

वाक्य - विन्यास

fileObject.write(string);

यहां, दिया गया पैरामीटर खुली हुई फ़ाइल में लिखी जाने वाली सामग्री है।

उदाहरण

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close()

उपरोक्त विधि foo.txt फ़ाइल बनाएगी और उस फ़ाइल में दी गई सामग्री को लिखेगी और अंत में वह उस फ़ाइल को बंद कर देगी। यदि आप इस फ़ाइल को खोलेंगे, तो इसमें निम्न सामग्री होगी -

Python is a great language.
Yeah its great!!

पढ़ी गई () विधि

read()विधि एक खुली फ़ाइल से एक स्ट्रिंग पढ़ता है। यह ध्यान रखना महत्वपूर्ण है कि पायथन स्ट्रिंग्स में बाइनरी डेटा हो सकता है। पाठ डेटा के अलावा।

वाक्य - विन्यास

fileObject.read([count]);

यहां, पारित पैरामीटर खुली हुई फ़ाइल से पढ़ने के लिए बाइट्स की संख्या है। यह विधि फ़ाइल की शुरुआत से पढ़ना शुरू कर देती है और यदि गिनती गायब है, तो यह यथासंभव पढ़ने की कोशिश करता है, शायद फ़ाइल के अंत तक।

उदाहरण

आइए हम एक फ़ाइल foo.txt लेते हैं , जिसे हमने ऊपर बनाया है।

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)

# Close opened file
fo.close()

यह निम्न परिणाम उत्पन्न करता है -

Read String is :  Python is

फ़ाइल स्थिति

बताएं () विधि आप फ़ाइल के भीतर वर्तमान स्थिति बताता है; दूसरे शब्दों में, अगली रीड या राइट फ़ाइल की शुरुआत से कई बाइट्स में होगी।

(ऑफसेट [, से]) की तलाश विधि वर्तमान फ़ाइल स्थिति में परिवर्तन। offsetतर्क बाइट की संख्या को इंगित करता है। from तर्क संदर्भ स्थिति को निर्दिष्ट करता है जहां से बाइट को स्थानांतरित किया जाना है।

यदि से 0 पर सेट किया गया है, तो फ़ाइल की शुरुआत को संदर्भ स्थिति के रूप में उपयोग किया जाता है। यदि यह 1 पर सेट है, तो वर्तमान स्थिति को संदर्भ स्थिति के रूप में उपयोग किया जाता है। यदि यह 2 पर सेट है, तो फ़ाइल का अंत संदर्भ स्थिति के रूप में लिया जाएगा।

उदाहरण

आइए हम एक फ़ाइल foo.txt लेते हैं , जिसे हमने ऊपर बनाया है।

#!/usr/bin/python3

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)

# Check current position
position = fo.tell()
print ("Current file position : ", position)

# Reposition pointer at the beginning once again
position = fo.seek(0, 0)
str = fo.read(10)
print ("Again read String is : ", str)

# Close opened file
fo.close()

यह निम्न परिणाम उत्पन्न करता है -

Read String is :  Python is
Current file position :  10
Again read String is :  Python is

फ़ाइलों का नाम बदलना और हटाना

अजगर os मॉड्यूल ऐसे तरीके प्रदान करता है जो आपको फ़ाइल-प्रोसेसिंग ऑपरेशन करने में मदद करते हैं, जैसे फ़ाइलों का नाम बदलना और हटाना।

इस मॉड्यूल का उपयोग करने के लिए, आपको इसे पहले आयात करना होगा और फिर आप किसी भी संबंधित कार्य को कॉल कर सकते हैं।

नाम () विधि

rename() विधि दो तर्क, वर्तमान फ़ाइल नाम और नया फ़ाइल नाम लेता है।

वाक्य - विन्यास

os.rename(current_file_name, new_file_name)

उदाहरण

मौजूदा फ़ाइल test1.txt का नाम बदलने के लिए एक उदाहरण निम्नलिखित है -

#!/usr/bin/python3
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

हटाने () विधि

आप उपयोग कर सकते हैं remove() विधि के रूप में डिलीट की जाने वाली फाइल के नाम को डिलीट करके फाइल्स को डिलीट करने की विधि।

वाक्य - विन्यास

os.remove(file_name)

उदाहरण

मौजूदा फ़ाइल test2.txt को हटाने के लिए एक उदाहरण निम्नलिखित है -

#!/usr/bin/python3
import os

# Delete file test2.txt
os.remove("text2.txt")

पायथन में निर्देशिकाएँ

सभी फाइलें विभिन्न निर्देशिकाओं में निहित हैं, और पायथन को भी इनसे निपटने में कोई समस्या नहीं है। os मॉड्यूल में कई तरीके हैं जो निर्देशिका बनाने, हटाने और बदलने में आपकी सहायता करते हैं।

Mkdir () विधि

आप उपयोग कर सकते हैं mkdir() की विधि osवर्तमान निर्देशिका में निर्देशिका बनाने के लिए मॉड्यूल। आपको इस पद्धति पर एक तर्क की आपूर्ति करने की आवश्यकता है, जिसमें बनाई जाने वाली निर्देशिका का नाम शामिल है।

वाक्य - विन्यास

os.mkdir("newdir")

उदाहरण

वर्तमान निर्देशिका में निर्देशिका परीक्षण बनाने के लिए एक उदाहरण निम्नलिखित है -

#!/usr/bin/python3
import os

# Create a directory "test"
os.mkdir("test")

चदिर () विधि

आप वर्तमान निर्देशिका को बदलने के लिए chdir () विधि का उपयोग कर सकते हैं । Chdir () विधि एक तर्क लेती है, जो उस निर्देशिका का नाम है जिसे आप वर्तमान निर्देशिका बनाना चाहते हैं।

वाक्य - विन्यास

os.chdir("newdir")

उदाहरण

निम्नलिखित एक उदाहरण है "/ home / newdir" निर्देशिका में जाने के लिए -

#!/usr/bin/python3
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

Getcwd () विधि

getcwd() पद्धति वर्तमान कार्यशील निर्देशिका को प्रदर्शित करती है।

वाक्य - विन्यास

os.getcwd()

उदाहरण

वर्तमान निर्देशिका देने के लिए एक उदाहरण निम्नलिखित है -

#!/usr/bin/python3
import os

# This would give location of the current directory
os.getcwd()

Rmdir () विधि

rmdir() विधि निर्देशिका को हटा देती है, जिसे विधि में एक तर्क के रूप में पारित किया जाता है।

एक निर्देशिका को हटाने से पहले, इसमें सभी सामग्री को हटा दिया जाना चाहिए।

वाक्य - विन्यास

os.rmdir('dirname')

उदाहरण

निम्नलिखित "/ tmp / test" निर्देशिका को हटाने के लिए एक उदाहरण है। निर्देशिका का पूरी तरह से योग्य नाम देना आवश्यक है, अन्यथा यह वर्तमान निर्देशिका में उस निर्देशिका की खोज करेगा।

#!/usr/bin/python3
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

फ़ाइल और निर्देशिका संबंधित तरीके

तीन महत्वपूर्ण स्रोत हैं, जो विंडोज और यूनिक्स ऑपरेटिंग सिस्टम पर फ़ाइलों और निर्देशिकाओं को संभालने और हेरफेर करने के लिए उपयोगिता विधियों की एक विस्तृत श्रृंखला प्रदान करते हैं। वे इस प्रकार हैं -

  • फ़ाइल ऑब्जेक्ट तरीके

    file ऑब्जेक्ट फ़ाइलों में हेरफेर करने के लिए फ़ंक्शन प्रदान करता है।

  • ओएस ऑब्जेक्ट तरीके

    यह फ़ाइलों के साथ-साथ निर्देशिकाओं को संसाधित करने के तरीके प्रदान करता है।