Yanıtlar:
Her zaman kullanmalısın open().
Gibi belgeler devletler:
Bir dosyayı açarken, bu kurucuyu doğrudan çağırmak yerine open () kullanmak tercih edilir. dosyası tür testine daha uygundur (örneğin, "isinstance (f, file)" yazmak).
Ayrıca, Python 3.0'dan beri file() kaldırıldı .
İki neden: "Bunu yapmanın bir yolu olmalı" python felsefesi ortadan kalkıyor file.
filegerçek türdür (örn. kullanarak file('myfile.txt')yapıcısını çağırır). openbir dosya nesnesini döndürecek bir fabrika işlevidir.
Python 3.0'da file, yerleşik olmaktan iokütüphanedeki birden çok sınıf tarafından uygulanmaya (arabellekli okuyucularla Java'ya biraz benzer, vb.) Geçecek.
file()int veya liste gibi bir türdür. open()dosyaları açma işlevidir ve bir filenesne döndürür .
Bu ne zaman open kullanmanız gerektiğine bir örnektir:
f = open(filename, 'r')
for line in f:
process(line)
f.close()
Bu, ne zaman dosya kullanmanız gerektiğine bir örnektir:
class LoggingFile(file):
def write(self, data):
sys.stderr.write("Wrote %d bytes\n" % len(data))
super(LoggingFile, self).write(data)
Gördüğünüz gibi, her ikisinin de var olması için iyi bir neden ve her ikisi için de net bir kullanım örneği var.
withifadeyle açılmalıdır . with open(filename, 'r') as f: \ for line in f: \ process(line). Bu açık kapanışı önler. Python 2.6 ve üstü bu withifadeyi doğal olarak desteklemektedir . Python 2.5'te, from __future__ import with_statementkodunuzun en üstüne eklemeniz gerekir .
filesınıf bir dosya bir withdeyim yoluyla açıldığında otomatik olarak çağrılan özel yöntemlerle donatılmıştır . Bu özel yöntemler dosyanın düzgün ve güvenli bir şekilde açılmasını ve kapatılmasını sağlar.
İşlevsel olarak, ikisi aynıdır; Yine opende arayacak file, şu anda fark bir stil meselesi. Python dokümanlar kullanılmasını tavsiye open.
Bir dosyayı açarken, dosya yapıcısını doğrudan çağırmak yerine open () kullanmak tercih edilir.
Bunun nedeni, gelecekteki sürümlerde aynı olmalarının garanti edilmemesidir ( openaçtığı yola bağlı olarak farklı türdeki nesneleri döndüren bir fabrika işlevi haline gelecektir).
Dosya açmak için sadece open () kullanın. file () aslında 3.0'da kaldırılıyor ve şu anda kullanımdan kaldırılıyor. Bir tür garip ilişki yaşadılar, ancak file () şimdi gidiyor, bu yüzden artık endişelenmenize gerek yok.
Aşağıdakiler Python 2.6 belgelerinden alınmıştır. [köşeli parantez] tarafımdan eklendi.
Bir dosyayı açarken, bu [file ()] yapıcısını doğrudan çağırmak yerine open () kullanmak tercih edilir. dosya tip testine daha uygundur (örneğin, isinstance (f, file) yazmak
Bay Van Rossum'a göre, open () şu anda file () için bir diğer ad olsa da, open () kullanmalısınız çünkü bu gelecekte değişebilir.