मेरा प्रश्न open()
का उपयोग करके पायथन में फ़ाइल-इनपुट से संबंधित है। मेरे पास 3 लाइनों के साथ एक टेक्स्ट फ़ाइल mytext.txt
है। मैं इस फ़ाइल के साथ दो चीजें करने की कोशिश कर रहा हूं: रेखाएं मुद्रित करें, और लाइनों की संख्या मुद्रित करें।इनपुट फ़ाइल के माध्यम से पाइथन लूपिंग
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
परिणाम:: यह 3 लाइनों को सही ढंग से प्रिंट, लेकिन प्रिंट "लाइनों की संख्या: 0" (3 के बजाय)
मैं दो पाया
मैं निम्नलिखित कोड की कोशिश की तरीके से इसे हल है, और यह 3
मुद्रित करने के लिए प्राप्त करने के लिए:
1) मैं बजाय एक पाश का उपयोग दो
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
count_lines += 1
print 'number of lines:', count_lines
2) पहली पाश के बाद, मैं मेरे लिए input_file फिर
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
input_file = open('mytext.txt', 'r')
for line in input_file:
count_lines += 1
print 'number of lines:', count_lines
को परिभाषित, यह परिभाषा input_file = ...
केवल एक पाशन के लिए मान्य है की तरह लगता है जैसे कि वह बाद मैं इसका इस्तेमाल नष्ट कर दिया गया एक पाश के लिए। लेकिन मुझे समझ में नहीं आता है, शायद यह मेरे लिए अभी तक 100% स्पष्ट नहीं है, कैसे variable = open(filename)
पायथन में इलाज किया जाता है।
वैसे, मुझे लगता है कि इस मामले में केवल एक लूप का उपयोग करना बेहतर है। हालांकि, मुझे लगता है कि मुझे यह प्रश्न स्पष्ट करना है, क्योंकि ऐसे मामले हो सकते हैं जब मैं इसका उपयोग कर सकूं।
input_file = open('mytext.txt', 'r')
count_lines = 0
for line in input_file:
print line
count_lines += 1
print 'number of lines:', count_lines
बात खुला द्वारा लौटाए गए एक फ़ाइल वस्तु है:
आप लाइनों की प्रक्रिया चाहते हैं, क्यों उपयोग नहीं 'readlines()' – tMC
readlines अपने मशीन पिटाई कर देगा और यदि आप अचानक एक बड़ी फ़ाइल के साथ उपयोग संभवतः दुर्घटना। एक समय में एक पंक्ति को पढ़ने के लिए आमतौर पर बेहतर होता है। – user1277476
आप रीडलाइन() का भी उपयोग कर सकते हैं, जो एक समय में एक पंक्ति को पढ़ता है। या रीडलाइन के साथ थ्रैशिंग/क्रैशिंग से बचने के लिए, वैकल्पिक आकार संकेत पैरामीटर का उपयोग करें: रीडलाइन (आकार संकेत)। यह पूरी लाइनों की संख्या वापस कर देगा जो "आकार संकेत" के बफर में फिट हो सकते हैं। – ncultra