Cara memeriksa file dibuka atau ditutup dengan Python

How Check File Is Opened

File tersebut digunakan untuk menyimpan data secara permanen. Bekerja dengan file adalah tugas yang sangat umum dari bahasa pemrograman apa pun. Banyak fungsi bawaan yang ada di Python untuk membuat, membuka, membaca, menulis, dan menutup file. Dua jenis file dapat dibuat untuk menyimpan data. Ini adalah file teks dan file biner. File apa pun harus dibuka sebelum membaca atau menulis. NS membuka() fungsi digunakan dalam Python untuk membuka file. Menggunakan membuka() fungsi adalah salah satu cara untuk memeriksa file tertentu dibuka atau ditutup. jika membuka() fungsi membuka file yang dibuka sebelumnya, lalu IOError akan dihasilkan. Cara lain untuk memeriksa file dibuka atau ditutup adalah dengan memeriksa nilai-nilai tertutup properti dari objek file handler. Menggunakan ganti nama() fungsi adalah cara lain untuk memeriksa file dibuka atau ditutup. Berbagai cara untuk memeriksa file apa pun yang dibuka atau ditutup dengan Python telah ditunjukkan dalam tutorial ini.

Buat file untuk diperiksa:

Anda dapat menggunakan file yang ada atau membuat file baru untuk menguji kode contoh yang ditampilkan dalam tutorial ini. File teks baru bernama klien.txt telah dibuat dengan konten berikut untuk digunakan nanti di bagian tutorial selanjutnya.



Nama ID Email
01 Jony Liver [dilindungi email]
02 Manik Hossain [dilindungi email]
03 Neha Akter [dilindungi email]
04 Janatul Ferdous [dilindungi email]
05 Helal Uddin [dilindungi email]



Contoh-1: Periksa file dibuka atau tidak dengan menggunakan IOError

IOError dihasilkan ketika fungsi open() dipanggil untuk membuka file yang telah dibuka sebelumnya. Buat file python dengan skrip berikut untuk memeriksa file dibuka atau tidak dengan menggunakan coba-kecuali memblokir. Di sini, setiap nama file yang ada akan diambil sebagai input dan dibuka untuk dibaca. Selanjutnya, fungsi open() dipanggil lagi untuk membuka file yang sama yang akan memunculkan IOError dan mencetak pesan kesalahan.



# Ambil nama file untuk diperiksa
nama file = masukan('Masukkan nama file yang ada: ')
# Buka file untuk pertama kali menggunakan fungsi open()
fileHandler = buka(nama file,'R')
# Coba buka lagi file yang sama
mencoba:
dengan terbuka('nama file','R') sebagaimengajukan:
# Cetak pesan sukses
mencetak('File telah dibuka untuk dibaca.')
# Naikkan kesalahan jika file dibuka sebelumnya
kecuali IOError:
mencetak('File sudah dibuka.')

Keluaran:

Output berikut akan muncul setelah menjalankan skrip di atas. Di Sini, klien.txt ada di lokasi saat ini, dan pesan kesalahan, File sudah dibuka, telah dicetak untuk IOError pengecualian.

Contoh-2: Periksa file ditutup atau tidak dengan menggunakan properti tertutup.

Nilai dari tertutup properti akan benar jika ada file yang ditutup. Buat file python dengan skrip berikut untuk memeriksa file tertutup atau tidak yang ada di lokasi saat ini. Contoh skrip sebelumnya akan menghasilkan kesalahan jika nama file yang diambil dari pengguna tidak ada di lokasi saat ini. Masalah ini telah dipecahkan dalam contoh ini. NS Anda module digunakan disini untuk mengecek keberadaan nama file yang akan diambil dari user. Fungsi check_closed() telah didefinisikan untuk memeriksa apakah file tersebut tertutup atau tidak yang akan dipanggil jika file tersebut ada.



# Impor modul os untuk memeriksa keberadaan file
impor
# Fungsi Drfine memeriksa file ditutup atau tidak
def check_closed():
jikafileHandler.closed == Salah:
# Cetak pesan sukses
mencetak('File telah dibuka untuk dibaca.')
lain:
# Cetak pesan kesalahan
mencetak('Berkas telah ditutup.')

# Ambil nama file untuk diperiksa
nama file = masukan('Masukkan nama file yang ada: ')
# Periksa file ada atau tidak
jikaos.path.exist(nama file):
# Buka file untuk dibaca
fileHandler = buka(nama file,'R')
# Panggil fungsinya
cek_tutup()
lain:
# Cetak pesan jika file tidak ada
mencetak('File tidak ada.')

Keluaran:

Output berikut akan muncul setelah menjalankan skrip di atas. Di Sini, klien.txt ada di lokasi saat ini, dan pesan sukses, File telah dibuka untuk dibaca, telah dicetak karena nilai properti tertutup dikembalikan Palsu .

Contoh-3: Periksa file dibuka atau tidak dengan menggunakan OSError

NS OSError dihasilkan ketika fungsi rename() dipanggil lebih dari satu kali untuk file yang sudah dibuka. Buat file python dengan skrip berikut untuk memeriksa file dibuka atau ditutup dengan menggunakan OSError . Modul os telah digunakan dalam skrip untuk memeriksa keberadaan file dan mengganti nama file. Ketika ganti nama() fungsi dipanggil untuk kedua kalinya, OSError akan dibuat, dan pesan kesalahan khusus akan dicetak.

# Impor modul os untuk memeriksa keberadaan file
impor
# Atur nama file yang ada
nama file ='klien.txt'
# Atur nama file baru
nama baru ='pelanggan.txt'
# Periksa file ada atau tidak
jikaos.path.exist(nama file):
mencoba:
# Panggil fungsi ganti nama untuk pertama kalinya
os.rename(nama file, nama baru)
# Panggil fungsi ganti nama untuk kedua kalinya
os.rename(nama file, nama baru)
# Naikkan kesalahan jika file telah dibuka
kecuali OSError:
mencetak('File masih dibuka.')

lain:
# Cetak pesan jika file tidak ada
mencetak('File tidak ada.')

Keluaran:

Output berikut akan muncul setelah menjalankan skrip di atas. Di Sini, klien.txt ada di lokasi saat ini, dan pesan kesalahan, File masih dibuka, telah dicetak karena OSError pengecualian telah dihasilkan ketika yang kedua ganti nama() fungsi telah dijalankan.

Kesimpulan:

Ketika kita perlu bekerja dengan file yang sama beberapa kali dalam sebuah skrip, penting untuk mengetahui apakah file tersebut dibuka atau ditutup. Lebih baik memanggil fungsi close() untuk menutup file setelah menyelesaikan operasi file. Kesalahan terjadi ketika file dibuka untuk kedua kalinya dalam skrip yang sama tanpa menutupnya. Solusi berbeda untuk masalah ini telah ditunjukkan dalam tutorial ini dengan menggunakan contoh sederhana untuk membantu pengguna python.