Bagaimana Anda mendapatkan hanya baris pertama file sebagai string dengan Python?
Bagaimana Anda mendapatkan hanya baris pertama file sebagai string dengan Python?
Jawaban:
Gunakan .readline()
metode ( Python 2 docs , Python 3 docs ):
with open('myfile.txt') as f:
first_line = f.readline()
Beberapa catatan:
f.readline()
akan berisi baris tambahan. Anda mungkin ingin menggunakan f.readline().strip()
sebagai gantinya untuk menghapus baris baru.with
pernyataan secara otomatis menutup file lagi ketika blok berakhir.with
pernyataan hanya bekerja di Python 2.5 dan ke atas, dan di Python 2,5 Anda perlu menggunakanfrom __future__ import with_statement
mod_wsgi
).
infile = open('filename.txt', 'r')
firstLine = infile.readline()
with
lebih baik.
fline=open("myfile").readline().rstrip()
rstrip()
menghapus karakter baris baru.
Ini harus dilakukan:
f = open('myfile.txt')
first = f.readline()
Untuk kembali ke awal file yang terbuka dan kemudian mengembalikan baris pertama, lakukan ini:
my_file.seek(0)
first_line = my_file.readline()
Banyak jawaban lain di sini, tetapi untuk menjawab persis pertanyaan yang Anda ajukan (sebelum @MarkAmery pergi dan mengedit pertanyaan asli dan mengubah artinya):
>>> 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]
Dengan kata lain, jika Anda sudah membaca dalam file (seperti yang Anda katakan), dan memiliki blok besar data dalam memori, maka untuk mendapatkan baris pertama dari itu secara efisien, lakukan split () pada karakter baris baru, sekali hanya, dan ambil elemen pertama dari daftar yang dihasilkan.
Perhatikan bahwa ini tidak termasuk \n
karakter di akhir baris, tetapi saya berasumsi Anda tidak menginginkannya (dan file single-line bahkan mungkin tidak memilikinya). Juga perhatikan bahwa meskipun cukup pendek dan cepat, itu membuat salinan data, jadi untuk gumpalan memori yang sangat besar Anda mungkin tidak menganggapnya "efisien". Seperti biasa, itu tergantung ...
.read()
harus dipanggil terlebih dahulu.
f1 = open("input1.txt", "r")
print(f1.readline())