एक अभ्यास के लिए मैं कर रहा हूं, मैं read()
विधि का उपयोग करके दो बार दी गई फ़ाइल की सामग्री को पढ़ने की कोशिश कर रहा हूं। आश्चर्यजनक रूप से, जब मैं इसे दूसरी बार कॉल करता हूं, तो यह फ़ाइल सामग्री को एक स्ट्रिंग के रूप में वापस नहीं प्रतीत होता है?मैं खुली फ़ाइल पर दो बार क्यों पढ़ नहीं सकता?
यहाँ कोड
f = f.open()
# get the year
match = re.search(r'Popularity in (\d+)', f.read())
if match:
print match.group(1)
# get all the names
matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', f.read())
if matches:
# matches is always None
बेशक मुझे पता है कि यह सबसे कारगर या सबसे अच्छा तरीका नहीं है, इस बात यहाँ नहीं है। मुद्दा यह है कि, मैं read()
को दो बार क्यों नहीं बुला सकता? क्या मुझे फ़ाइल हैंडल रीसेट करना है? या ऐसा करने के लिए फ़ाइल को बंद/दोबारा खोलें?
आपको यह विचार कहां मिला कि फ़ाइल की स्थिति में बदलाव नहीं आएगा? आप किस संदर्भ या ट्यूटोरियल का उपयोग कर रहे हैं? –
मेरा मानना है कि फाइल को बंद करना और फिर से खोलना चाहिए नीचे दिए गए एवरों के आधार पर काम करना चाहिए। – Anthony
@Shynthriir: फ़ाइल को बंद करना और फिर से खोलना हमेशा एक अच्छा विचार नहीं है क्योंकि इसका सिस्टम (अस्थायी फ़ाइलें, incron, आदि) में अन्य प्रभाव हो सकते हैं। –