Apa perbedaan antara file
dan open
dalam Python? Kapan saya harus menggunakan yang mana? (Katakan saya di 2.5)
138
Anda harus selalu menggunakannya open()
.
Seperti yang dinyatakan dalam dokumentasi :
Saat membuka file, lebih baik menggunakan open () daripada memanggil konstruktor ini secara langsung. file lebih cocok untuk mengetik pengujian (misalnya, menulis "isinstance (f, file)").
Juga, file()
telah dihapus sejak Python 3.0.
Dua alasan: Filsafat python "Seharusnya ada satu cara untuk melakukannya" dan
file
akan hilang.file
adalah tipe aktual (menggunakan mis.file('myfile.txt')
memanggil konstruktornya).open
adalah fungsi pabrik yang akan mengembalikan objek file.Dalam python 3.0
file
akan beralih dari built-in menjadi diterapkan oleh beberapa kelas diio
perpustakaan (agak mirip dengan Java dengan pembaca buffer, dll.)sumber
file()
adalah tipe, seperti int atau daftar.open()
adalah fungsi untuk membuka file, dan akan mengembalikanfile
objek.Ini adalah contoh kapan Anda harus menggunakan open:
Ini adalah contoh kapan Anda harus menggunakan file:
Seperti yang Anda lihat, ada alasan bagus untuk keduanya ada, dan penggunaan yang jelas untuk keduanya.
sumber
with
pernyataan.with open(filename, 'r') as f: \ for line in f: \ process(line)
. Ini menghindari penutupan eksplisit. Python 2.6 dan di atas secara alami mendukungwith
pernyataan itu. Di Python 2.5, Anda harus menambahkanfrom __future__ import with_statement
ke bagian atas kode Anda.file
kelas itu dilengkapi dengan metode khusus yang secara otomatis dipanggil setiap kali file dibuka melaluiwith
pernyataan. Metode khusus ini memastikan bahwa file dibuka dan ditutup dengan benar dan aman.Secara fungsional, keduanya sama;
open
akanfile
tetap menelepon , jadi saat ini perbedaannya adalah masalah gaya. The Python docs menyarankan menggunakanopen
.Alasannya adalah bahwa dalam versi yang akan datang mereka tidak dijamin sama (
open
akan menjadi fungsi pabrik, yang mengembalikan objek dari berbagai jenis tergantung pada jalur yang dibuka).sumber
Hanya gunakan open () untuk membuka file. file () sebenarnya sedang dihapus di 3.0, dan saat ini sudah tidak digunakan lagi. Mereka memiliki semacam hubungan aneh, tetapi file () sedang berjalan, jadi tidak perlu khawatir lagi.
Berikut ini adalah dari dokumen Python 2.6. [braket] ditambahkan oleh saya.
sumber
Menurut Tn. Van Rossum, meskipun open () saat ini adalah alias untuk file () Anda harus menggunakan open () karena ini mungkin berubah di masa depan.
sumber