Lebih
Skip dulu beberapa baris saat membaca baris-baris dalam file Python
Aku ingin melewatkan 17 pertama garis saat membaca file teks.
Let's mengatakan berkas tersebut terlihat seperti:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
good stuff
Aku hanya ingin hal-hal yang baik. Apa yang saya'm melakukan lebih banyak lebih rumit, tapi ini adalah bagian I'm memiliki masalah dengan.
53
9
Menggunakan sepotong, seperti di bawah ini:
Jika file terlalu besar untuk muat di memori:
Gunakan
itertools.islice
, mulai dari indeks 17. Maka secara otomatis akan melewatkan 17 baris pertama.Lengkap demo:
Keuntungan: Ini adalah mudah extensible untuk kasus-kasus di mana anda awalan garis-garis yang lebih rumit dari "0" (tetapi tidak saling bergantung).
Solusi ini membantu saya untuk melewati jumlah garis-garis yang ditentukan oleh
linetostart
variabel. Anda mendapatkan index (int) dan garis (string) jika anda ingin melacak orang-orang juga. Dalam kasus anda, anda mengganti linetostart dengan 18, atau menetapkan 18 untuk linetostart variabel.Berikut adalah metode untuk mendapatkan garis antara dua nomor baris dalam sebuah file:
Jika itu's atas meja.
pd.read_table("path/ke/file", sep=" t", index_col=0, skiprows=17)
Jika anda don't ingin membaca seluruh file ke memori sekaligus, anda dapat menggunakan beberapa trik:
Dengan
berikutnya(iterator)
anda dapat maju ke baris berikutnya:Tentu saja, ini cukup jelek, jadi itertools memiliki cara yang lebih baik untuk melakukan hal ini:
Berikut ini adalah waktuhal hasil bagi atas 2 jawaban. Perhatikan bahwa "berkas.txt" adalah file teks yang berisi lebih dari 100.000 baris string acak dengan ukuran file 1MB+.
Menggunakan itertools:
Menggunakan dua loop:
jelas itertools metode ini lebih efisien ketika berhadapan dengan file besar.
Anda dapat menggunakan Daftar-Pemahaman untuk membuat sebuah one-liner:
Lebih lanjut tentang daftar pemahaman di PEP 202 dan di Python dokumentasi.