() translation by (you can also view the original English article)
Mari saya memulai langsung dengan menanyakan, apakah kita benar-benar membutuhkan Python untuk membaca file teks besar? Bukankah pemroses kata atau editor teks normal kita cukup untuk itu? Ketika saya menyebutkan besar di sini, yang saya maksud adalah file yang ukurannya besarnya sangat ekstrim.
Baiklah, mari kita lihat beberapa bukti tentang apakah kita akan membutuhkan Python untuk membaca file seperti itu atau tidak.
Memperoleh File
Untuk melaksanakan eksperimen kita, kita memerlukan sebuah file teks yang besar. Dalam tutorial ini, kita akan memperoleh file ini dari website download UCSC Genome Bioinformatics. File yang akan kita gunakan adalah hg38.fa.gz
, seperti yang dijelaskan di sini sebagai:
Urutan penyusunan "soft-masked" dalam satu file. Pengulangan dari RepeatMasker dan Tandem Repeats Finder (dengan 12 periode atau kurang) ditunjukkan dalam huruf kecil; urutan tanpa pengulangan ditunjukkan dalam huruf besar.
Saya tidak ingin kamu khawatir jika kamu tidak mengerti pernyataan di atas, karena itu terkait dengan terminologi Genetics. Yang penting dalam tutorial ini adalah konsep membaca file teks yang sangat besar menggunakan Python.
Silahkan dan download hg38.fa.gz
(hati-hati, ukuran filenya 938 MB). Kamu dapat menggunakan 7-zip untuk membongkar file, atau tool lainnya yang kamu pilih.
Setelah kamu membongkar file, kamu akan mendapatkan sebuah file bernama hg38.fa
. Namai ulang menjadi hg38.txt
untuk mendapatkan file teks.
Membuka File Dalam Cara Tradisional
Apa yang saya maksudkan di sini dalam cara tradisional adalah menggunakan pemrsoses kata atau editor teks untuk membuka file. Mari lihat apa yang terjadi ketika kita mencoba melakukan itu.
Pertama saya mencoba menggunakan Microsoft Word untuk membuka file, dan mendapatkan pesan berikut:



Walaupun membuka file tidak juga berfungsi menggunakan WordPad dan Notepad dalam mesin Windows, itu terbuka menggunakan TextEdit pada mesin Mac OS X.
Namun kamu mengerti intinya, dan memiliki cara yang terjamin untuk membuka file yang sangat besar akan menjadi ide yang bagus. Dalam tip singkat ini, kita akan melihat bagaimana melakukannya menggunakan Python.
Membaca File Teks Menggunakan Python
Dalam section ini, kita akan melihat bagaimana kita dapat membaca file besar menggunakan Python. Mari katakan kita ingin membaca 500 baris pertama dari file teks besar kita. Kita cukup melakukan di bawah ini:
1 |
input_file = open('hg38.txt','r') |
2 |
output_file = open('output.txt','w') |
3 |
|
4 |
for lines in range(500): |
5 |
line = input_file.readline() |
6 |
output_file.write(line) |
Perhatikan bahwa kita membaca 500 baris dari hg38.txt
, baris demi baris, dan menuliskan baris itu ke sebuah file teks baru output.txt
, yang harusnya tampak seperti yang ditunjukkan dalam file ini.
Namun katakan kita ingin menjelajah langsung dalam file teks tanpa mengekstraknya baris demi baris dan mengirimkannya ke file teks lain, khususnya karena cara ini tampak lebih fleksibel.
Menjelajah Melalui File Teks Besar
Walaupun langkah di atas membolehkan kita untuk membaca file teks besar dengan mengekstrak baris dari file itu dan mengirimkannya ke teks file lain, menjelajah langsung dalam file tanpa perlu mengekstraknya baris demi baris akan menjadi ide yang lebih dipilih.
Kita dapat melakukannya menggunakan Python untuk membaca file teks melalui layar terminal sebagai berikut (navigasi melalui file 50 baris sekali waktu):
1 |
input_file = open('hg38.txt','r') |
2 |
|
3 |
while(1): |
4 |
for lines in range(50): |
5 |
print input_file.readline() |
6 |
user_input = raw_input('Type STOP to quit, otherwise press the Enter/Return key ') |
7 |
if user_input == 'STOP': |
8 |
break
|
Seperti yang dapat kamu lihat dari script ini, kamu sekarang dapat membaca dan menavigasi melalui file teks besar secara langsung menggunakan terminal. Kapanpun kamu ingin keluar, kamu hanya perlu mengetikkan STOP
(case sensitive) dalam terminal.
Saya yakin kamu menyadari betapa mulusnya Python dalam melakukan navigasi melalui file teks yang sangat besar tanpa memiliki isu apapun. Python sekali lagi membuktikan dirinya sebagai sebuah bahasa yang berusaha untuk membuat hidup kita lebih mudah!