Python ile bir dosyanın dize olarak yalnızca ilk satırını nasıl elde edersiniz?
Python ile bir dosyanın dize olarak yalnızca ilk satırını nasıl elde edersiniz?
Yanıtlar:
.readline()
Yöntemi kullanın ( Python 2 belgeleri , Python 3 belgeleri ):
with open('myfile.txt') as f:
first_line = f.readline()
Bazı notlar:
f.readline()
bir satırsonu satırı içerecektir. Bunun f.readline().strip()
yerine yeni satırı kaldırmak için kullanmak isteyebilirsiniz .with
İfadesi otomatik olarak yeniden ne zaman blok uçlarını dosyayı kapatır.with
ifade yalnızca Python 2.5 ve üstü sürümlerde çalışır ve Python 2.5 sürümündefrom __future__ import with_statement
mod_wsgi
).
fline=open("myfile").readline().rstrip()
rstrip()
yeni satır karakterini kaldırdığı için.
Bunu yapmalı:
f = open('myfile.txt')
first = f.readline()
Açık bir dosyanın başlangıcına geri dönüp ilk satırı döndürmek için şunu yapın:
my_file.seek(0)
first_line = my_file.readline()
first_line = next(open(filename))
Burada başka cevaplar da var, ancak sorduğunuz soruyu tam olarak cevaplamak için (@MarkAmery orijinal soruyu düzenlemeden ve anlamını değiştirmeden önce):
>>> 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]
Başka bir deyişle, dosyayı zaten okuduysanız (dediğin gibi) ve bellekte büyük bir veri bloğuna sahipseniz, ilk satırı verimli bir şekilde almak için, yeni satır karakterine bir kez () bölün. Yalnızca ilk öğeyi sonuç listesinden alın.
Bu \n
satırın sonundaki karakteri içermediğini unutmayın , ancak yine de istemediğinizi varsayıyorum (ve tek satırlı bir dosya bile olmayabilir). Ayrıca, oldukça kısa ve hızlı olmasına rağmen, verilerin bir kopyasını oluşturduğunu unutmayın, bu nedenle gerçekten büyük bir bellek bloğu için "verimli" olarak değerlendiremeyebilirsiniz. Her zaman olduğu gibi, ...
.read()
ilk çağrılmalıdır.
f1 = open("input1.txt", "r")
print(f1.readline())