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

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

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

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

#!/usr/bin/python

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

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

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

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

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

  • raw_input
  • input

raw_input समारोह

Raw_input ([शीघ्र]) समारोह में यह एक स्ट्रिंग (अनुगामी न्यू लाइन को हटाने के) के रूप में मानक इनपुट और रिटर्न से एक पंक्ति पढ़ता है।

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

यह आपको किसी भी स्ट्रिंग में प्रवेश करने का संकेत देता है और यह स्क्रीन पर समान स्ट्रिंग प्रदर्शित करेगा। जब मैंने "हेलो पायथन!" टाइप किया, तो इसका आउटपुट इस तरह है -

Enter your input: Hello Python
Received input is :  Hello Python

इनपुट समारोह

इनपुट ([शीघ्र]) समारोह raw_input करने के लिए, को छोड़कर यह मानता है कि एक मान्य अजगर अभिव्यक्ति है और आप के लिए मूल्यांकन परिणाम देता बराबर है।

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

यह दर्ज किए गए इनपुट के खिलाफ निम्नलिखित परिणाम का उत्पादन करेगा -

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

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

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

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

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

4

file.softspace

यदि गलत रूप से प्रिंट के साथ अंतरिक्ष की आवश्यकता होती है, तो यह गलत है।

उदाहरण

#!/usr/bin/python

# 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
print "Softspace flag : ", fo.softspace

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

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

करीब () विधि

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

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

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

fileObject.close()

उदाहरण

#!/usr/bin/python

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

# Close opend file
fo.close()

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

Name of the file:  foo.txt

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

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

लिखने () विधि

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

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

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

fileObject.write(string)

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

उदाहरण

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
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!!

पढ़ने () विधि

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

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

fileObject.read([count])

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

उदाहरण

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

#!/usr/bin/python

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

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

Read String is :  Python is

फ़ाइल स्थिति

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

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

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

उदाहरण

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

#!/usr/bin/python

# 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 opend file
fo.close()

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

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

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

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

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

नाम () विधि

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

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

os.rename(current_file_name, new_file_name)

उदाहरण

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

#!/usr/bin/python
import os

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

निकालें () विधि

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

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

os.remove(file_name)

उदाहरण

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

#!/usr/bin/python
import os

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

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

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

Mkdir () विधि

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

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

os.mkdir("newdir")

उदाहरण

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

#!/usr/bin/python
import os

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

Chdir () विधि

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

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

os.chdir("newdir")

उदाहरण

"/ होम / न्यूडिर" निर्देशिका में जाने के लिए निम्नलिखित उदाहरण है -

#!/usr/bin/python
import os

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

Getcwd () विधि

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

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

os.getcwd()

उदाहरण

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

#!/usr/bin/python
import os

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

Rmdir () विधि

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

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

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

os.rmdir('dirname')

उदाहरण

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

#!/usr/bin/python
import os

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

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

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

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

  • OS Object Methods : यह फाइल के साथ-साथ डायरेक्टरीज़ को प्रोसेस करने के तरीके प्रदान करता है।