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 fileakan hilang.
fileadalah tipe aktual (menggunakan mis. file('myfile.txt')memanggil konstruktornya). openadalah fungsi pabrik yang akan mengembalikan objek file.
Dalam python 3.0 fileakan beralih dari built-in menjadi diterapkan oleh beberapa kelas di ioperpustakaan (agak mirip dengan Java dengan pembaca buffer, dll.)
file()adalah tipe, seperti int atau daftar. open()adalah fungsi untuk membuka file, dan akan mengembalikan fileobjek.
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.
withpernyataan. 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 withpernyataan itu. Di Python 2.5, Anda harus menambahkan from __future__ import with_statementke bagian atas kode Anda.
filekelas itu dilengkapi dengan metode khusus yang secara otomatis dipanggil setiap kali file dibuka melalui withpernyataan. Metode khusus ini memastikan bahwa file dibuka dan ditutup dengan benar dan aman.
Secara fungsional, keduanya sama; openakan filetetap 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 ( openakan 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.