Bir dosyadan veri okuma
Bir metin dosyasını okurken, bayt akışı program girişine arka arkaya sırayla girer, böylece dosya verilere sıralı erişim sağlar. Yani dosyadan 10. değeri okumamız gerekiyorsa önce bir önceki 9'u okumalıyız.
Bir dosyanın tek bir satırını okumak,
readline()
yönteminin yürütülmesine izin verir. Bu yöntem bir dosya değişkeninde çağrılır.
Fin = açık("input.txt")
s = Fin.readline()
Klavyeden okurken kullanılanlara benzer (split()
, map()
, vb.) okuma dizesine çeşitli yöntemler uygulanabilir. Örneğin, bir dosyanın bir satırında boşlukla ayrılmış iki sayı varsa, bunları aşağıdaki gibi sayabilirsiniz:
Fin = açık("input.txt")
s = Fin.readline().split() # boşluklara bölünmüş çizgi s = ["2007", "2021"]
a, b = harita(int, s) # int() yöntemini listedeki tüm öğelere uygula,
# yani, karakter dizisini bir sayıya dönüştürün
# a, b = int(s[0], s[1]) # bu yukarıdaki satırla aynı
# a, b = [int(x) for x in s] # üreteç ile aynı
read()
yöntemi, dosyanın tüm içeriğini okur ve '\n
' karakterlerini içerebilecek bir dize döndürür. read()
yöntemine bir tamsayı parametresi iletilirse, belirtilen karakter sayısından fazlası okunmaz. Örneğin, read(1)
.
yöntemini kullanarak bir dosyayı bayt bayt okuyabilirsiniz.
Bir dosya açıldığında, dosyadaki geçerli konumu belirleyen işaretçi dosyanın başına ayarlanır ve okunduğunda okunan veriden sonraki konuma kaydırılır. Yazarken, işaretçi bir sonraki boş konuma taşınır.