Salt-okunur open() bağlam yöneticisi
Aylarca toplayıp temizlediğin bir sürü veri dosyan var ve bunları bir sonraki deep learning projen için kullanacaksın. Eğitime almak için okurken yanlışlıkla bu dosyalardan birinin üzerine yazman korkunç olurdu. Bu yüzden projende kullanmak üzere open() bağlam yöneticisinin salt-okunur bir sürümünü oluşturmaya karar verdin.
Normal open() bağlam yöneticisi:
- bir dosya adı ve kip (okuma için
'r', yazma için'w', ekleme için'a') alır - dosyayı okuma, yazma veya ekleme için açar
- bağlama, dosyaya bir başvuruyla birlikte denetimi geri verir
- bağlamın bitmesini bekler
- ve çıkmadan önce dosyayı kapatır
Senin bağlam yöneticin de aynı şeyi yapacak; tek fark, yalnızca argüman olarak dosya adını alacak ve dosyayı sadece okumak için açacak olmasıdır.
Bu egzersiz
Python'da Fonksiyon Yazımı
kursunun bir parçasıdırEgzersiz talimatları
open_read_only()içinden denetimi bağlam bloğuna ver veread_only_filenesnesininmy_file'a atanmasını sağla.- Açık dosyalar kalmaması için
read_only_file'ın.close()yöntemini kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
@contextlib.contextmanager
def open_read_only(filename):
"""Open a file in read-only mode.
Args:
filename (str): The location of the file to read
Yields:
file object
"""
read_only_file = open(filename, mode='r')
# Yield read_only_file so it can be assigned to my_file
____ ____
# Close read_only_file
____.____()
with open_read_only('my_file.txt') as my_file:
print(my_file.read())