Jawaban:
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 di io
perpustakaan (agak mirip dengan Java dengan pembaca buffer, dll.)
file()
adalah tipe, seperti int atau daftar. open()
adalah fungsi untuk membuka file, dan akan mengembalikan file
objek.
Ini adalah contoh kapan Anda harus menggunakan open:
f = open(filename, 'r')
for line in f:
process(line)
f.close()
Ini adalah contoh kapan Anda harus menggunakan file:
class LoggingFile(file):
def write(self, data):
sys.stderr.write("Wrote %d bytes\n" % len(data))
super(LoggingFile, self).write(data)
Seperti yang Anda lihat, ada alasan bagus untuk keduanya ada, dan penggunaan yang jelas untuk keduanya.
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 mendukung with
pernyataan itu. Di Python 2.5, Anda harus menambahkan from __future__ import with_statement
ke bagian atas kode Anda.
file
kelas itu dilengkapi dengan metode khusus yang secara otomatis dipanggil setiap kali file dibuka melalui with
pernyataan. Metode khusus ini memastikan bahwa file dibuka dan ditutup dengan benar dan aman.
Secara fungsional, keduanya sama; open
akan file
tetap menelepon , jadi saat ini perbedaannya adalah masalah gaya. The Python docs menyarankan menggunakan open
.
Saat membuka file, lebih baik menggunakan open () daripada memanggil konstruktor file secara langsung.
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).
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.
Saat membuka file, lebih baik menggunakan open () alih-alih memanggil konstruktor [file ()] ini secara langsung. file lebih cocok untuk mengetik pengujian (misalnya, menulis isinstance (f, file)
Menurut Tn. Van Rossum, meskipun open () saat ini adalah alias untuk file () Anda harus menggunakan open () karena ini mungkin berubah di masa depan.