Cara Menangani File dengan Python
Diterbitkan: 2022-03-11Dalam bahasa pemrograman apa pun, penanganan file merupakan aspek penting. Dan Python juga mendukung bekerja dengan file dalam mode yang berbeda—seperti membaca dan menulis ke file, dan banyak lagi.
Pada akhir tutorial ini, Anda akan dapat:
- buka dan baca file dengan Python,
- membaca baris dari file teks,
- menulis dan menambahkan ke file, dan
- gunakan manajer konteks untuk bekerja dengan file dengan Python.
Cara Membaca File dengan Python
Untuk membuka file dengan Python, Anda dapat menggunakan sintaks umum: open('file_name','mode')
.
- Di sini,
file_name
adalah nama file.
Catatan: Jika file yang ingin Anda buka ada di direktori kerja saat ini, Anda hanya dapat menyebutkan nama file tersebut. Jika ada di folder lain di lingkungan kerja Anda, Anda harus menyertakan jalur ke file.
-
mode
parameter menentukan mode di mana Anda ingin membuka file.
Mode default untuk membuka file dibaca —dilambangkan dengan huruf
'r'
. Namun, ini adalah praktik yang disarankan untuk menentukan mode secara eksplisit.
Sebelum kita mulai, mari kita lihat file lib.txt
, yang akan kita gunakan dalam contoh ini.
Unduh file teks dan kode yang digunakan dalam tutorial ini dari repo GitHub ini.

Cuplikan kode di bawah ini menunjukkan bagaimana Anda dapat membuka file teks 'lib.txt'
dengan Python menggunakan fungsi open()
, dan membaca isinya.
file = open('lib.txt','r') contents = file.read() print(contents) file.close() # Output Hello, there! Here are a few helpful Python libraries: 1) NumPy 2) pandas 3) matplotlib 4) seaborn 5) scikit-learn 6) BeautifulSoup 7) Scrapy 8) nltk 9) Bokeh 10) statsmodels
Dalam contoh di atas,
- Fungsi
open()
mengembalikan objek file, dan kami memilih untuk menyebutnyafile
. - Selanjutnya, kita memanggil metode
read()
padafile
. -
contents
variabel sekarang berisi konten file. Dan kami mencetaknya. - Akhirnya, kami menutup file.
Namun, jika Anda lupa untuk menutup file, akan ada kemungkinan pemborosan sumber daya. Jika Anda bekerja dengan sejumlah besar file seperti itu, mungkin ada penggunaan memori yang besar. Ini karena Anda telah membuka beberapa file tetapi belum menutup satu pun.
Sekarang, mari pelajari cara yang lebih baik untuk membuka file menggunakan manajer konteks. Cuplikan kode di bawah ini menunjukkan bagaimana Anda dapat menggunakannya.
with open('lib.txt','r') as f: contents = f.read() print(contents)
Saat menggunakan manajer kontak untuk bekerja dengan file, Anda tidak harus menggunakan metode close()
. File secara otomatis ditutup setelah operasi I/O selesai.
Cara Membaca Baris dari File dengan Python
Dalam file teks sampel kami, kami hanya memiliki beberapa baris. Jadi membaca semua isi file sekaligus tidak menjadi masalah.

Namun, ketika Anda perlu membaca dalam file besar, menggunakan metode read()
, seperti yang ditunjukkan di atas, mungkin tidak terlalu efisien.
Bahkan, jika file teks berukuran sangat besar, Anda mungkin akan segera kehabisan memori. Itulah mengapa Anda mungkin ingin membaca baris hanya baca dari file teks, dan Anda akan mempelajari cara melakukannya di bagian ini.
Menggunakan Metode readline() Python untuk Membaca Baris dari File
Metode readline()
membaca satu baris dalam satu waktu, dari file.
Jalankan cuplikan kode berikut.
with open('lib.txt','r') as f: line = f.readline() print(line) line = f.readline() print(line) # Output Hello, there! Here are a few helpful Python libraries:
Anda dapat melihat bahwa setelah pemanggilan metode readline()
pertama, baris pertama dalam file akan dicetak. Dan panggilan kedua ke metode readline()
mengembalikan baris kedua dalam file.
Ini karena, setelah pemanggilan metode pertama, penunjuk file berada di awal baris kedua.
Dengan Python, Anda dapat menggunakan metode
tell()
untuk mendapatkan lokasi pointer file saat ini. Dan untuk memindahkan penunjuk file ke lokasi tertentu, Anda dapat menggunakan metodeseek()
.
Dalam cuplikan kode di bawah ini, kita menggunakan f.seek(0)
setelah pemanggilan metode pertama. Ini memindahkan penunjuk file ke awal file teks. Itulah sebabnya, kedua kali, baris pertama dalam file dicetak.
with open('lib.txt','r') as f: line = f.readline() print(line) f.seek(0) line = f.readline() print(line) # Output Hello, there! Hello, there!
Menggunakan Metode readlines() Python untuk Membaca Baris dari File
Ada metode lain yang terkait erat yang disebut readlines()
.
Saat Anda menjalankan cuplikan kode berikut, Anda akan melihat bahwa metode readlines()
mengembalikan daftar semua baris dalam file.
with open('lib.txt','r') as f: lines = f.readlines() print(lines) # Output ['Hello, there!\n', 'Here are a few helpful Python libraries:\n', '1) NumPy\n', '2) pandas\n', '3) matplotlib\n', '4) seaborn\n', '5) scikit-learn\n', '6) BeautifulSoup\n', '7) Scrapy\n', '8) nltk\n', '9) Bokeh\n', '10) statsmodels\n', '\n']
Menggunakan Python's for Loop untuk Membaca Baris dari File
Untuk membaca baris dari file teks, Anda juga bisa menggunakan for
loop.

Setelah Anda memiliki objek file, Anda dapat menggunakan loop for
untuk mengulangi isi file—satu baris pada satu waktu dan mencetaknya, seperti yang ditunjukkan di bawah ini. Perhatikan bagaimana kita mengakses hanya satu baris pada satu waktu dan tidak membaca seluruh isi file.
with open('lib.txt','r') as f: for line in f: print(line, end='')
Catatan : Saat menggunakan fungsi
print()
Python, pemisah default adalah karakter baris baru—'\n'
. Tetapi di file asli, kami tidak memiliki baris baru ini. Jadi atur argumen pemisah ke string kosong:end = ''
untuk mencetak konten file apa adanya.
Cara Membaca Potongan Konten dari File dengan Python
Dengan Python, Anda juga dapat memilih untuk membaca isi file dalam potongan kecil.
Baca melalui kode di bawah ini:
- Di sini, kami mengatur
chunk_size
menjadi50
. Ini berarti bahwa 50 karakter pertama dalam file akan dibaca, dan kami juga mencetaknya.
- Sekarang, panggil metode
tell()
pada objek filef
. Anda dapat melihat bahwa penunjuk file sekarang berada di posisi 51— seperti yang diharapkan.
chunk_size = 50 with open('lib.txt','r') as f: chunk = f.read(chunk_size) print(chunk) current = f.tell() print(f"Current position of file pointer: {current}") # Output Hello, there! Here are a few helpful Python librar Current position of file pointer: 51
Anda juga dapat menggunakan teknik ini untuk membaca seluruh file dalam potongan kecil.
Cuplikan kode berikut menunjukkan bagaimana Anda dapat melakukannya.
chunk_size = 50 with open('lib.txt','r') as f: chunk = f.read(chunk_size) print(chunk,end='') while(len(chunk)>0): chunk = f.read(chunk_size) print(chunk,end='') # Output Hello, there! Here are a few helpful Python libraries: 1) NumPy 2) pandas 3) matplotlib 4) seaborn 5) scikit-learn 6) BeautifulSoup 7) Scrapy 8) nltk 9) Bokeh 10) statsmodels
Di sini, kita menggunakan while
loop untuk membaca isi file. Kami membaca isi file dalam potongan ukuran 50 sampai kami mencapai akhir file.
Cara Menulis ke File dengan Python
Untuk menulis ke file teks dengan Python, Anda harus membukanya dalam mode tulis—menentukan 'w'
.

Cuplikan kode di bawah ini menunjukkan cara melakukannya.
with open('new_file.txt','w') as f: f.write('Hello, Python!')
Anda akan melihat bahwa 'new_file.txt'
telah dibuat di direktori kerja Anda.
Sekarang, jalankan sel kode di atas sekali lagi.
Di terminal Anda jalankan perintah berikut:
cat new_file.txt # Output: Hello, Python!
Idealnya, kami telah menulis ke file dua kali. Jadi Hello, Python!
seharusnya dicetak dua kali, ya?
Tetapi Anda akan melihat bahwa itu hanya dicetak sekali. Nah, ini karena ketika Anda membuka file dalam mode tulis ( w
), pada dasarnya Anda menimpa isi file dengan konten baru.
Jika Anda ingin menambahkan ke akhir file tanpa menimpa konten yang ada, Anda harus membuka file dalam mode penambahan . Dan Anda akan melihat bagaimana melakukannya di bagian selanjutnya.
Cara Menambahkan ke File dengan Python
Jika Anda ingin menambahkan konten ke file—tanpa menimpa, buka dalam mode penambahan.
Untuk melakukannya, gunakan ` 'a'
— a for append —dan tentukan mode secara eksplisit.
Selanjutnya, jalankan sel kode berikut dua kali.
with open('new_file.txt','a') as f: f.write('Hello, Python!')
Perhatikan bagaimana teks dicetak dua kali sekarang, seperti yang kita tambahkan ke file.
cat new_file.txt # Output: Hello, Python!Hello, Python!
Kesimpulan
Mari dengan cepat meringkas apa yang telah kita bahas dalam tutorial ini.
- Anda telah mempelajari operasi I/O file umum seperti membaca, menulis, dan menambahkan ke file.
- Selain itu, Anda juga telah mempelajari cara menggunakan metode seek() untuk memindahkan penunjuk file ke posisi tertentu, dan
- cara menggunakan metode tell() untuk mengambil posisi pointer file saat ini.
Saya harap Anda menemukan tutorial ini bermanfaat. Sekarang setelah Anda mempelajari cara bekerja dengan file teks dengan Python, pelajari cara bekerja dengan file JSON dengan Python.
Terkait:
Periksa panjang daftar dengan Python dalam 3 langkah.