Modul ini mendefinisikan sejumlah fungsi untuk memfasilitasi penyelesaian dan pembacaan/penulisan file sejarah dari juru bahasa Python. Modul ini dapat digunakan secara langsung atau melalui modul. Pengaturan yang dibuat menggunakan modul ini memengaruhi perilaku permintaan interaktif juru bahasa dan permintaan yang ditawarkan oleh fungsi bawaan dan
Catatan
Pada MacOS X, modul dapat diimplementasikan menggunakan pustaka libedit alih-alih garis baca GNU.
File konfigurasi untuk libedit berbeda dari GNU readline. Jika Anda secara terprogram memuat string konfigurasi, Anda dapat memeriksa teks “libedit” di readline. __doc__ untuk membedakan antara GNU readline dan libedit.
Modul ini mendefinisikan fungsi-fungsi berikut
readline. parse_and_bind(string)Parsing dan jalankan satu baris file init readline
readline. get_line_buffer()Mengembalikan konten buffer baris saat ini
readline. sisipkan_teks(string)Sisipkan teks ke dalam baris perintah
garis baca. read_init_file( [ nama file ])Parsing file inisialisasi readline. Nama file default adalah nama file terakhir yang digunakan
garis baca. read_history_file( [ nama file ])Muat file riwayat readline. Nama file default adalah ~/. riwayat .
garis baca. write_history_file( [ nama file ])Simpan file riwayat readline. Nama file default adalah ~/. riwayat .
readline. hapus_sejarah()Hapus riwayat saat ini. (Catatan. fungsi ini tidak tersedia jika versi terinstal GNU readline tidak mendukungnya. )
Baru di versi 2. 4
readline. get_history_length()Kembalikan panjang file riwayat yang diinginkan. Nilai negatif menyiratkan ukuran file riwayat tidak terbatas
readline. set_sejarah_panjang(panjang)Tetapkan jumlah baris yang akan disimpan dalam file riwayat. menggunakan nilai ini untuk memotong file riwayat saat menyimpan. Nilai negatif menyiratkan ukuran file riwayat tidak terbatas
readline. get_current_history_length()Kembalikan jumlah baris yang saat ini ada dalam riwayat. (Ini berbeda dengan , yang mengembalikan jumlah maksimum baris yang akan ditulis ke file riwayat. )
Readline adalah modul khusus UNIX. Ini mendefinisikan sejumlah fungsi untuk membaca dan menulis file sejarah dengan cara yang lebih mudah dari juru bahasa python. Kita dapat menggunakan modul ini secara langsung atau menggunakan modul rlcompleter. Pengaturan modul ini dapat memengaruhi prompt metode input() bawaan dan juga prompt interaktif
Untuk sistem berbasis MAC (pada MAC OS X) modul readline ini dapat diimplementasikan menggunakan pustaka libedit. Konfigurasi libedit berbeda dari readline GNU
Untuk menggunakan modul ini, kita perlu mengimpor modul readline dalam kode python
import readlineBeberapa metode readline GNU adalah sebagai berikut −
Sr. TIDAK. Fungsi dan Deskripsireadline. parse_and_bind(string)
Ambil satu baris dari file readline init dan jalankan setelah parsing
2readline. get_line_buffer()
Dapatkan konten buffer baris saat ini
3readline. sisipkan_teks(string)
Sisipkan teks ke baris perintah
4readline. baca_init_file([nama file])
Parsing file inisialisasi readline. Nilai default adalah nilai yang terakhir diberikan
5readline. read_history_file([nama file])
Baca sejarah dari file yang diberikan. Nama file default adalah ~/. sejarah
6readline. tulis_history_file([nama file])
Simpan riwayat ke dalam file yang diberikan. File default adalah ~/. sejarah
7readline. hapus_sejarah()
Hapus riwayat saat ini
8readline. get_history_length()
Dapatkan panjang maksimum file riwayat
9readline. set_sejarah_panjang(panjang)
Atur panjang file riwayat (Jumlah baris)
10readline. get_current_history_length ()
Dapatkan jumlah total baris dalam file riwayat
11readline. dapatkan_history_item(indeks)
Dapatkan item riwayat menggunakan index
12readline. hapus_history_item(pos)
Hapus riwayat berdasarkan posisi
13readline. replace_history_item(pos, baris)
Ganti sejarah dengan posisi
14readline. menampilkan ulang()
Menampilkan konten buffer baris saat ini
15readline. get_begidx()
Mendapatkan indeks awal cakupan penyelesaian tab
16readline. get_endidx()
Mendapatkan indeks akhir dari lingkup penyelesaian tab
17readline. tambahkan_history(baris)
Tambahkan satu baris di akhir buffer riwayat
Kode ini digunakan untuk membaca file history dan menyimpannya di dalam direktori home. Kode akan berfungsi saat dikompilasi dan dijalankan dalam mode interaktif. Setelah keluar dari shell python, itu akan menyimpan file history
Python menyediakan fungsi bawaan untuk membuat, menulis, dan membaca file. Ada dua jenis file yang dapat ditangani dengan python, file teks normal dan file biner (ditulis dalam bahasa biner, 0s, dan 1s). Pada artikel ini, kita akan mempelajari membaca baris demi baris dari sebuah file
Metode 1. Baca File Baris demi Baris menggunakan readlines()
readlines() digunakan untuk membaca semua baris sekaligus dan kemudian mengembalikannya sebagai setiap baris elemen string dalam daftar. Fungsi ini dapat digunakan untuk file kecil, karena membaca seluruh konten file ke memori, lalu membaginya menjadi beberapa baris terpisah. Kita dapat mengulangi daftar dan menghapus karakter '\n' baris baru menggunakan fungsi strip()
Contoh.
Python3
# Python code to
# demonstrate readlines()
L= Line1 Geeks Line2 for Line3 Geeks0Line1 Geeks Line2 for Line3 Geeks1Line1 Geeks Line2 for Line3 Geeks2Line1 Geeks Line2 for Line3 Geeks_3Line1 Geeks Line2 for Line3 Geeks2Line1 Geeks Line2 for Line3 Geeks1Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks_8
Line1 Geeks Line2 for Line3 Geeks9= Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Line1 Geeks Line2 for Line3 Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks5Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using for loop Line1: Geeks Line2: for Line3: Geeks_7
Using for loop Line1: Geeks Line2: for Line3: Geeks_8
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']_0
Line1 Geeks Line2 for Line3 Geeks9= Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Line1 Geeks Line2 for Line3 Geeks2['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7Using for loop Line1: Geeks Line2: for Line3: Geeks6
________18Line1 Geeks Line2 for Line3 Geeks_150_______ Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks1
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks3= Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks5
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks_6
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks7 Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks9 # Python code to0
# Python code to1Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks3# Python code to3= # Python code to5
# Python code to1# Python code to7Using for loop Line1: Geeks Line2: for Line3: Geeks2# Python code to9# demonstrate readlines()0# demonstrate readlines()1# demonstrate readlines()2
Keluaran.
Metode 2. Baca File Baris demi Baris menggunakan readline()
fungsi readline() membaca satu baris file dan mengembalikannya dalam bentuk string. Dibutuhkan parameter n, yang menentukan jumlah maksimum byte yang akan dibaca. Namun, tidak membaca lebih dari satu baris, meskipun n melebihi panjang baris. Ini akan efisien saat membaca file besar karena alih-alih mengambil semua data sekaligus, ini mengambil baris demi baris. readline() mengembalikan baris berikutnya dari file yang berisi karakter baris baru pada akhirnya. Juga, jika akhir file tercapai, itu akan mengembalikan string kosong
Contoh
Python3
# demonstrate readlines()_3
# demonstrate readlines()_4
L= Line1 Geeks Line2 for Line3 Geeks0Line1 Geeks Line2 for Line3 Geeks1Line1 Geeks Line2 for Line3 Geeks2Line1 Geeks Line2 for Line3 Geeks_3Line1 Geeks Line2 for Line3 Geeks2Line1 Geeks Line2 for Line3 Geeks1Line1 Geeks Line2 for Line3 Geeks6
_6
Line1 Geeks Line2 for Line3 Geeks9= Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Line1 Geeks Line2 for Line3 Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks5Using for loop Line1: Geeks Line2: for Line3: Geeks6
L_5
Using for loop Line1: Geeks Line2: for Line3: Geeks_8
L_8
Line1 Geeks Line2 for Line3 Geeks9= Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Line1 Geeks Line2 for Line3 Geeks2['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks3= Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks5
Line1 Geeks Line2 for Line3 Geeks_01 Line1 Geeks Line2 for Line3 Geeks02Line1 Geeks Line2 for Line3 Geeks03
# Python code to1Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks3# Python code to3= # Python code to5
# Python code to1Line1 Geeks Line2 for Line3 Geeks11
# Python code to1Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8= Line1 Geeks Line2 for Line3 Geeks15
# Python code to1Line1 Geeks Line2 for Line3 Geeks18
# Python code to1Line1 Geeks Line2 for Line3 Geeks20
# Python code to1Line1 Geeks Line2 for Line3 Geeks22 Line1 Geeks Line2 for Line3 Geeks23 Line1 Geeks Line2 for Line3 Geeks24
Line1 Geeks Line2 for Line3 Geeks25Line1 Geeks Line2 for Line3 Geeks26
# Python code to1# Python code to7Using for loop Line1: Geeks Line2: for Line3: Geeks2# Python code to9# demonstrate readlines()0# demonstrate readlines()1# demonstrate readlines()2
Using for loop Line1: Geeks Line2: for Line3: Geeks_8
Keluaran.
Line1 Geeks Line2 for Line3 Geeks_Metode 3. Baca File Baris demi Baris menggunakan for loop
Objek iterable dikembalikan oleh fungsi open() saat membuka file. Cara terakhir membaca file baris demi baris ini mencakup iterasi atas objek file dalam satu lingkaran. Dalam melakukan ini, kami memanfaatkan fungsi Python bawaan yang memungkinkan kami untuk mengulangi objek file secara implisit menggunakan loop for dalam kombinasi dengan menggunakan objek yang dapat diulang. Pendekatan ini membutuhkan lebih sedikit baris kode, yang selalu merupakan praktik terbaik yang layak untuk diikuti
Contoh
Python3
# demonstrate readlines()_3
Line1 Geeks Line2 for Line3 Geeks_37
Line1 Geeks Line2 for Line3 Geeks_38
L= Line1 Geeks Line2 for Line3 Geeks0Line1 Geeks Line2 for Line3 Geeks1Line1 Geeks Line2 for Line3 Geeks2Line1 Geeks Line2 for Line3 Geeks_3Line1 Geeks Line2 for Line3 Geeks2Line1 Geeks Line2 for Line3 Geeks1Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks_50
Line1 Geeks Line2 for Line3 Geeks9= Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Line1 Geeks Line2 for Line3 Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks5Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using for loop Line1: Geeks Line2: for Line3: Geeks_7
Using for loop Line1: Geeks Line2: for Line3: Geeks_8
Line1 Geeks Line2 for Line3 Geeks_62
Line1 Geeks Line2 for Line3 Geeks9= Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Line1 Geeks Line2 for Line3 Geeks2['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks3= Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks5
Line1 Geeks Line2 for Line3 Geeks_75
# Python code to7Using for loop Line1: Geeks Line2: for Line3: Geeks2Line1 Geeks Line2 for Line3 Geeks78Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks7 Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks9 Line1 Geeks Line2 for Line3 Geeks83
# Python code to1Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks3# Python code to3= # Python code to5
# Python code to1# Python code to7Using for loop Line1: Geeks Line2: for Line3: Geeks2# Python code to9# demonstrate readlines()0# demonstrate readlines()1# demonstrate readlines()2
Line1 Geeks Line2 for Line3 Geeks_97
Using for loop Line1: Geeks Line2: for Line3: Geeks_8
Keluaran
Using for loop Line1: Geeks Line2: for Line3: GeeksMetode 4. Baca File Baris demi Baris menggunakan for loop dan daftar pemahaman
Pemahaman daftar terdiri dari tanda kurung yang berisi ekspresi, yang dijalankan untuk setiap elemen bersama dengan perulangan for untuk mengulangi setiap elemen. Di sini, kita akan membaca file teks dan mencetak data mentah termasuk karakter baris baru di keluaran lain, kita menghapus semua karakter baris baru dari daftar
Contoh
Python3
Line1 Geeks Line2 for Line3 Geeks_99Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Using for loop Line1: Geeks Line2: for Line3: Geeks03
# Python code to1Using for loop Line1: Geeks Line2: for Line3: Geeks05= Using for loop Line1: Geeks Line2: for Line3: Geeks07Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks7 Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks9 Using for loop Line1: Geeks Line2: for Line3: Geeks11
# Python code to7Using for loop Line1: Geeks Line2: for Line3: Geeks14
Using for loop Line1: Geeks Line2: for Line3: Geeks_16
Line1 Geeks Line2 for Line3 Geeks_99Using for loop Line1: Geeks Line2: for Line3: Geeks1Using for loop Line1: Geeks Line2: for Line3: Geeks2Using for loop Line1: Geeks Line2: for Line3: Geeks3Using for loop Line1: Geeks Line2: for Line3: Geeks03
# Python code to1Using for loop Line1: Geeks Line2: for Line3: Geeks05= Using for loop Line1: Geeks Line2: for Line3: Geeks25________27______7 Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8Using readlines() Line1: Geeks Line2: for Line3: Geeks Using readline() Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks9 Using for loop Line1: Geeks Line2: for Line3: Geeks11
# Python code to7Using for loop Line1: Geeks Line2: for Line3: Geeks14
Keluaran
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']Dengan pernyataan
Dalam pendekatan di atas, setiap kali file dibuka, file harus ditutup secara eksplisit. Jika seseorang lupa menutup file, itu mungkin memperkenalkan beberapa bug dalam kode, mis. e. banyak perubahan dalam file tidak berlaku hingga file ditutup dengan benar. Untuk mencegah hal ini dengan pernyataan dapat digunakan. Pernyataan With di Python digunakan dalam penanganan pengecualian untuk membuat kode lebih bersih dan lebih mudah dibaca. Ini menyederhanakan pengelolaan sumber daya umum seperti aliran file. Perhatikan contoh kode berikut tentang bagaimana penggunaan pernyataan with membuat kode menjadi lebih bersih. Tidak perlu memanggil file. close() saat menggunakan dengan pernyataan. Dengan pernyataan itu sendiri memastikan akuisisi yang tepat dan pelepasan sumber daya