पायथन में एकाधिक ओपन स्टेटमेंट के साथ फ़ाइल हैंडलिंग में सुधार कैसे करें
पायथन में, ओपन() फ़ंक्शन फ़ाइल इनपुट के लिए एक बहुमुखी उपकरण है और आउटपुट. एकाधिक फ़ाइलों के साथ काम करते समय, उचित संसाधन प्रबंधन सुनिश्चित करने के लिए with कथन का उपयोग करना फायदेमंद होता है।
स्थिति:
एक कोड स्निपेट पर विचार करें जो फ़ाइल से नाम पढ़ता है और विशिष्ट नामों में अतिरिक्त पाठ जोड़ता है। वर्तमान कार्यान्वयन क्रमिक रूप से फ़ाइलें खोलता है, जो इष्टतम नहीं हो सकता है। उन्हें। यह एक साथ कई फाइलों को संभालने में सक्षम बनाता है और संसाधन प्रबंधन को बढ़ाता है।
def फ़िल्टर(txt, Oldfile, newfile): ''' किसी फ़ाइल से नामों की सूची को लाइन दर लाइन आउटपुट फ़ाइल में पढ़ें। यदि कोई पंक्ति किसी विशेष नाम से शुरू होती है, तो पाठ की एक स्ट्रिंग डालें आउटपुट फ़ाइल में लाइन जोड़ने से पहले नाम के बाद। ''' आउटफाइल के रूप में ओपन(न्यूफाइल, 'डब्ल्यू') के साथ, इनफाइल के रूप में ओपन(ओल्डफाइल, 'आर', एन्कोडिंग='यूटीएफ-8') के साथ: इनफ़ाइल में लाइन के लिए: यदि लाइन.स्टार्ट्सविथ(txt): लाइन = लाइन[0:लेन(txt)] '- सचमुच एक महान व्यक्ति!\n' outfile.write(line)
अतिरिक्त नोट्स:
def filter(txt, oldfile, newfile):
'''
Read a list of names from a file line by line into an output file.
If a line begins with a particular name, insert a string of text
after the name before appending the line to the output file.
'''
with open(newfile, 'w') as outfile, open(oldfile, 'r', encoding='utf-8') as infile:
for line in infile:
if line.startswith(txt):
line = line[0:len(txt)] ' - Truly a great person!\n'
outfile.write(line)
किसी फ़ंक्शन से बिना किसी रिटर्न वैल्यू के स्पष्ट रूप से लौटना अनावश्यक है।यह सुविधा Python 2.7 और 3.1 या नए में पेश किया गया था।
यदि Python संस्करण 2.5 या 2.6 के साथ संगतता है आवश्यक है, कथनों के साथ नेस्टिंग करना या contextlib.nested का उपयोग करना अनुशंसित है।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3