आप पायथन के साथ एक स्ट्रिंग के रूप में फ़ाइल की केवल पहली पंक्ति कैसे प्राप्त करेंगे?
आप पायथन के साथ एक स्ट्रिंग के रूप में फ़ाइल की केवल पहली पंक्ति कैसे प्राप्त करेंगे?
जवाबों:
.readline()
विधि का उपयोग करें ( पायथन 2 डॉक्स , पायथन 3 डॉक्स ):
with open('myfile.txt') as f:
first_line = f.readline()
कुछ नोट:
f.readline()
में एक अनुगामी नई रेखा होगी। आप f.readline().strip()
नई पंक्ति को हटाने के बजाय उपयोग करना चाह सकते हैं ।with
बयान स्वचालित रूप से फिर से जब ब्लॉक समाप्त होता है फ़ाइल बंद कर देता है।with
बयान केवल अजगर 2.5 और ऊपर में काम करता है, और अजगर 2.5 में आप उपयोग करने की जरूरत हैfrom __future__ import with_statement
mod_wsgi
)।
infile = open('filename.txt', 'r')
firstLine = infile.readline()
with
बेहतर है।
fline=open("myfile").readline().rstrip()
rstrip()
से न्यूलाइन कैरेक्टर हटाता है।
यह करना चाहिए:
f = open('myfile.txt')
first = f.readline()
एक खुली फ़ाइल की शुरुआत में वापस जाने के लिए और फिर पहली पंक्ति में लौटें, यह करें:
my_file.seek(0)
first_line = my_file.readline()
यहाँ अन्य उत्तरों के बहुत सारे, लेकिन आपके द्वारा पूछे गए प्रश्न का सटीक उत्तर देने से पहले (@MarkAmery गए और मूल प्रश्न को संपादित किया और अर्थ बदल दिया):
>>> f = open('myfile.txt')
>>> data = f.read()
>>> # I'm assuming you had the above before asking the question
>>> first_line = data.split('\n', 1)[0]
दूसरे शब्दों में, यदि आप फ़ाइल में पहले से पढ़ चुके हैं (जैसा कि आपने कहा था), और मेमोरी में डेटा का एक बड़ा ब्लॉक है, तो इससे पहली पंक्ति को कुशलता से प्राप्त करने के लिए, एक बार न्यूलाइन वर्ण पर एक विभाजन करें () केवल, और परिणामी सूची से पहला तत्व लें।
ध्यान दें कि इसमें \n
पंक्ति के अंत में वर्ण शामिल नहीं है , लेकिन मैं मान रहा हूं कि आप इसे वैसे भी नहीं चाहते हैं (और एकल-पंक्ति फ़ाइल में एक भी नहीं हो सकता है)। यह भी ध्यान दें कि यद्यपि यह बहुत छोटा और त्वरित है, यह डेटा की एक प्रतिलिपि बनाता है, इसलिए स्मृति की वास्तव में बड़ी बूँद के लिए आप इसे "कुशल" नहीं मान सकते हैं। हमेशा की तरह, यह निर्भर करता है ...
.read()
पहले बुलाया जाना चाहिए।
f1 = open("input1.txt", "r")
print(f1.readline())