Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Industrial programming >> Python

File Python I/O

I/O File Python

Dalam tutorial ini, Anda akan belajar tentang operasi file Python. Lebih khusus lagi, membuka file, membaca darinya, menulis ke dalamnya, menutupnya, dan berbagai metode file yang harus Anda ketahui.

Video:Membaca dan Menulis File dengan Python

File

File diberi nama lokasi pada disk untuk menyimpan informasi terkait. Mereka digunakan untuk menyimpan data secara permanen dalam memori non-volatile (misalnya hard disk).

Karena Random Access Memory (RAM) bersifat volatil (yang kehilangan datanya saat komputer dimatikan), kami menggunakan file untuk penggunaan data di masa mendatang dengan menyimpannya secara permanen.

Ketika kita ingin membaca dari atau menulis ke sebuah file, kita harus membukanya terlebih dahulu. Setelah selesai, itu perlu ditutup agar sumber daya yang terikat dengan file dibebaskan.

Oleh karena itu, dalam Python, operasi file berlangsung dalam urutan berikut:

  1. Buka file
  2. Membaca atau menulis (melakukan operasi)
  3. Tutup file

Membuka File dengan Python

Python memiliki open() . bawaan berfungsi untuk membuka file. Fungsi ini mengembalikan objek file, juga disebut pegangan, karena digunakan untuk membaca atau memodifikasi file yang sesuai.

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path

Kita dapat menentukan mode saat membuka file. Dalam mode, kami menentukan apakah kami ingin membaca r , tulis w atau tambahkan a ke file. Kita juga dapat menentukan apakah kita ingin membuka file dalam mode teks atau mode biner.

Standarnya adalah membaca dalam mode teks. Dalam mode ini, kita mendapatkan string saat membaca dari file.

Di sisi lain, mode biner mengembalikan byte dan ini adalah mode yang akan digunakan saat menangani file non-teks seperti gambar atau file yang dapat dieksekusi.

Mode Deskripsi
r Membuka file untuk dibaca. (bawaan)
w Membuka file untuk menulis. Membuat file baru jika tidak ada atau memotong file jika ada.
x Membuka file untuk pembuatan eksklusif. Jika file sudah ada, operasi gagal.
a Membuka file untuk ditambahkan di akhir file tanpa memotongnya. Membuat file baru jika tidak ada.
t Buka dalam mode teks. (bawaan)
b Buka dalam mode biner.
+ Membuka file untuk memperbarui (membaca dan menulis)
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode

Tidak seperti bahasa lain, karakter a tidak menyiratkan angka 97 sampai dikodekan menggunakan ASCII (atau penyandian setara lainnya).

Selain itu, pengkodean default bergantung pada platform. Di windows, ini adalah cp1252 tapi utf-8 di Linux.

Jadi, kita juga tidak boleh bergantung pada penyandian default atau kode kita akan berperilaku berbeda di platform yang berbeda.

Oleh karena itu, saat bekerja dengan file dalam mode teks, sangat disarankan untuk menentukan jenis penyandian.

f = open("test.txt", mode='r', encoding='utf-8')

Menutup File dengan Python

Setelah selesai melakukan operasi pada file, kita perlu menutup file dengan benar.

Menutup file akan membebaskan sumber daya yang terikat dengan file tersebut. Hal ini dilakukan dengan menggunakan close() metode yang tersedia dengan Python.

Python memiliki pengumpul sampah untuk membersihkan objek yang tidak direferensikan, tetapi kita tidak boleh mengandalkannya untuk menutup file.

f = open("test.txt", encoding = 'utf-8')
# perform file operations
f.close()

Cara ini tidak sepenuhnya aman. Jika pengecualian terjadi saat kita melakukan beberapa operasi dengan file, kode akan keluar tanpa menutup file.

Cara yang lebih aman adalah menggunakan try...finally block.

try:
   f = open("test.txt", encoding = 'utf-8')
   # perform file operations
finally:
   f.close()

Dengan cara ini, kami menjamin bahwa file ditutup dengan benar meskipun ada pengecualian yang menyebabkan aliran program berhenti.

Cara terbaik untuk menutup file adalah dengan menggunakan with penyataan. Ini memastikan bahwa file ditutup ketika blok di dalam with pernyataan keluar.

Kita tidak perlu secara eksplisit memanggil close() metode. Itu dilakukan secara internal.

with open("test.txt", encoding = 'utf-8') as f:
   # perform file operations

Menulis ke File dengan Python

Untuk menulis ke dalam file dengan Python, kita perlu membukanya dengan menulis w , tambahkan a atau kreasi eksklusif x modus.

Kita harus berhati-hati dengan w mode, karena akan menimpa file jika sudah ada. Karena ini, semua data sebelumnya terhapus.

Penulisan string atau urutan byte (untuk file biner) dilakukan dengan menggunakan write() metode. Metode ini mengembalikan jumlah karakter yang ditulis ke file.

with open("test.txt",'w',encoding = 'utf-8') as f:
   f.write("my first file\n")
   f.write("This file\n\n")
   f.write("contains three lines\n")

Program ini akan membuat file baru bernama test.txt di direktori saat ini jika tidak ada. Jika memang ada, itu akan ditimpa.

Kita harus memasukkan karakter baris baru sendiri untuk membedakan baris yang berbeda.


Membaca File dengan Python

Untuk membaca file dengan Python, kita harus membuka file dengan membaca r modus.

Ada berbagai metode yang tersedia untuk tujuan ini. Kita dapat menggunakan read(size) metode untuk membaca dalam size sejumlah data. Jika ukuran parameter tidak ditentukan, ia membaca dan mengembalikan hingga akhir file.

Kita bisa membaca text.txt file yang kami tulis di bagian atas dengan cara sebagai berikut:

>>> f = open("test.txt",'r',encoding = 'utf-8')
>>> f.read(4)    # read the first 4 data
'This'

>>> f.read(4)    # read the next 4 data
' is '

>>> f.read()     # read in the rest till end of file
'my first file\nThis file\ncontains three lines\n'

>>> f.read()  # further reading returns empty sting
''

Kita dapat melihat bahwa read() metode mengembalikan baris baru sebagai '\n' . Setelah akhir file tercapai, kami mendapatkan string kosong untuk pembacaan lebih lanjut.

Kita dapat mengubah kursor (posisi) file kita saat ini menggunakan seek() metode. Demikian pula, tell() metode mengembalikan posisi kita saat ini (dalam jumlah byte).

>>> f.tell()    # get the current file position
56

>>> f.seek(0)   # bring file cursor to initial position
0

>>> print(f.read())  # read the entire file
This is my first file
This file
contains three lines

Kita dapat membaca file baris demi baris menggunakan for loop. Ini efisien dan cepat.

>>> for line in f:
...     print(line, end = '')
...
This is my first file
This file
contains three lines

Dalam program ini, baris dalam file itu sendiri menyertakan karakter baris baru \n . Jadi, kami menggunakan parameter akhir dari print() berfungsi untuk menghindari dua baris baru saat mencetak.

Atau, kita dapat menggunakan readline() metode untuk membaca baris individu dari file. Metode ini membaca file hingga baris baru, termasuk karakter baris baru.

>>> f.readline()
'This is my first file\n'

>>> f.readline()
'This file\n'

>>> f.readline()
'contains three lines\n'

>>> f.readline()
''

Terakhir, readlines() metode mengembalikan daftar baris yang tersisa dari seluruh file. Semua metode pembacaan ini mengembalikan nilai kosong saat akhir file (EOF) tercapai.

>>> f.readlines()
['This is my first file\n', 'This file\n', 'contains three lines\n']

Metode File Python

Ada berbagai metode yang tersedia dengan objek file. Beberapa di antaranya telah digunakan dalam contoh di atas.

Berikut adalah daftar lengkap metode dalam mode teks dengan deskripsi singkat:

Metode Deskripsi
tutup() Menutup file yang dibuka. Tidak ada pengaruhnya jika file sudah ditutup.
lepaskan() Memisahkan buffer biner yang mendasarinya dari TextIOBase dan mengembalikannya.
fileno() Mengembalikan nomor integer (deskriptor file) dari file.
flush() Menghapus buffer tulis dari aliran file.
isatty() Mengembalikan True jika aliran file bersifat interaktif.
baca(n ) Membaca paling banyak n karakter dari file. Membaca sampai akhir file jika negatif atau None .
dapat dibaca() Mengembalikan True jika aliran file dapat dibaca.
baris baca(n =-1) Membaca dan mengembalikan satu baris dari file. Membaca paling banyak n byte jika ditentukan.
readlines(n =-1) Membaca dan mengembalikan daftar baris dari file. Membaca paling banyak n byte/karakter jika ditentukan.
mencari(offset ,dari =SEEK_SET ) Mengubah posisi file menjadi offset byte, mengacu pada dari (mulai, saat ini, akhir).
dapat dicari() Mengembalikan True jika aliran file mendukung akses acak.
beritahu() Mengembalikan lokasi file saat ini.
memotong(ukuran =None ) Mengubah ukuran aliran file menjadi size byte. Jika ukuran tidak ditentukan, mengubah ukuran ke lokasi saat ini.
dapat ditulis() Mengembalikan True jika aliran file dapat ditulis.
tulis(s ) Menulis string s ke file dan mengembalikan jumlah karakter yang ditulis.
tulisan(baris ) Menulis daftar baris ke file.

Python

  1. C Masukan Keluaran (I/O)
  2. Tipe Data Python
  3. Operator Python
  4. Kamus Python
  5. File Python I/O
  6. Python Periksa Apakah File Ada | Cara Memeriksa Apakah Direktori Ada di Python
  7. Python JSON:Encode(dumps), Decode(loads) &Baca File JSON
  8. C - File I/O
  9. C# - File I/O
  10. Python - File I/O