Python'da Dosyalar Nasıl İşlenir?

Yayınlanan: 2022-03-11

Herhangi bir programlama dilinde dosya işleme önemli bir husustur. Ayrıca Python, dosyalarla okuma ve dosyalara yazma gibi farklı modlarda çalışmayı da destekler.

Bu eğitimin sonunda şunları yapabileceksiniz:

  • Python'da dosyaları aç ve oku,
  • bir metin dosyasından satırları oku,
  • dosyalara yazma ve ekleme ve
  • Python'da dosyalarla çalışmak için bağlam yöneticilerini kullanın.

Python'da Dosya Nasıl Okunur

Python'da bir dosya açmak için genel söz dizimini kullanabilirsiniz: open('file_name','mode') .

  • Burada file_name dosyanın adıdır.

Not: Açmak istediğiniz dosya mevcut çalışma dizinindeyse, sadece dosyanın adını belirtebilirsiniz. Çalışma ortamınızdaki başka bir klasördeyse, dosyanın yolunu eklemelisiniz.

  • Parametre mode , dosyayı açmak istediğiniz modu belirtir.

Bir dosyayı açmak için varsayılan mod okunur'r' harfi ile gösterilir. Ancak, modun açıkça belirtilmesi önerilen bir uygulamadır.

Başlamadan önce, bu örnekte kullanacağımız lib.txt dosyasına bir göz atalım.

Bu eğitimde kullanılan metin dosyasını ve kodu bu GitHub deposundan indirin.

Aşağıdaki kod parçacığı, open() işlevini kullanarak Python'da bir 'lib.txt' metin dosyasını nasıl açabileceğinizi ve içeriğini nasıl okuyabileceğinizi gösterir.

 file = open('lib.txt','r') contents = file.read() print(contents) file.close() # Output Hello, there! Here are a few helpful Python libraries: 1) NumPy 2) pandas 3) matplotlib 4) seaborn 5) scikit-learn 6) BeautifulSoup 7) Scrapy 8) nltk 9) Bokeh 10) statsmodels

Yukarıdaki örnekte,

  • open() işlevi bir dosya nesnesi döndürür ve biz onu file olarak adlandırmayı seçeriz.
  • Ardından, file üzerinde read() yöntemini çağırıyoruz.
  • Değişken contents artık dosyanın içeriğini içerir. Ve çıktısını alıyoruz.
  • Son olarak dosyayı kapatıyoruz.

Ancak, dosyayı kapatmayı unutursanız, olası bir kaynak israfı olacaktır. Bu tür çok sayıda dosyayla çalışıyorsanız, önemli miktarda bellek kullanımı olabilir. Bunun nedeni, birkaç dosya açmış olmanız ancak hiçbirini kapatmamış olmanızdır.

Şimdi, kullanarak dosyaları açmanın daha iyi bir yolunu öğrenelim. bağlam yöneticileri. Aşağıdaki kod parçası, bunları nasıl kullanabileceğinizi gösterir.

 with open('lib.txt','r') as f: contents = f.read() print(contents)

Dosyalarla çalışmak için kişi yöneticilerini kullanırken, close() yöntemini kullanmanız gerekmez. G/Ç işlemi tamamlandıktan sonra dosyalar otomatik olarak kapatılır.

Python'da Dosyadan Satır Nasıl Okunur

Örnek metin dosyamızda sadece birkaç satırımız vardı. Bu nedenle, tüm dosya içeriğini bir kerede okumak sorun değildi.

python-okuma dosyası

Ancak, büyük dosyalarda okumanız gerektiğinde, yukarıda gösterildiği gibi read() yöntemini kullanmak çok verimli olmayabilir.

Aslında, metin dosyası çok büyük boyuttaysa, yakında belleğiniz tükenebilir. Bu nedenle bir metin dosyasındaki salt okunur satırları okumak isteyebilirsiniz ve bunu nasıl yapacağınızı bu bölümde öğreneceksiniz.

Dosyadan Satırları Okumak için Python'un readline() Yöntemini Kullanma

readline() yöntemi, dosyadan her seferinde bir satır okur.

Aşağıdaki kod parçacığını çalıştırın.

 with open('lib.txt','r') as f: line = f.readline() print(line) line = f.readline() print(line) # Output Hello, there! Here are a few helpful Python libraries:

İlk readline() yöntemi çağrısından sonra dosyadaki ilk satırın yazdırıldığını görebilirsiniz. Ve readline() yöntemine yapılan ikinci çağrı, dosyadaki ikinci satırı döndürür.

Bunun nedeni, ilk yöntem çağrısından sonra dosya işaretçisinin ikinci satırın başında olmasıdır.

Python'da, dosya işaretçisinin geçerli konumunu almak için tell() yöntemini kullanabilirsiniz. Dosya işaretçisini belirli bir konuma taşımak için seek() yöntemini kullanabilirsiniz.

Aşağıdaki kod parçacığında, ilk yöntem çağrısından sonra f.seek(0) kullanıyoruz. Bu, dosya işaretçisini metin dosyasının başına taşır. Bu nedenle, her iki seferde de dosyadaki ilk satır yazdırılır.

 with open('lib.txt','r') as f: line = f.readline() print(line) f.seek(0) line = f.readline() print(line) # Output Hello, there! Hello, there!

Dosyadan Satırları Okumak için Python'un readlines() Yöntemini Kullanma

readlines() adında yakından ilişkili başka bir yöntem daha var.

Aşağıdaki kod parçacığını çalıştırdığınızda, readlines() yönteminin dosyadaki tüm satırların bir listesini döndürdüğünü göreceksiniz.

 with open('lib.txt','r') as f: lines = f.readlines() print(lines) # Output ['Hello, there!\n', 'Here are a few helpful Python libraries:\n', '1) NumPy\n', '2) pandas\n', '3) matplotlib\n', '4) seaborn\n', '5) scikit-learn\n', '6) BeautifulSoup\n', '7) Scrapy\n', '8) nltk\n', '9) Bokeh\n', '10) statsmodels\n', '\n']

Dosyadan Satırları Okumak için Python's for Loop'u Kullanma

Bir metin dosyasındaki satırları okumak için for döngüsünü de kullanabilirsiniz.

Bir dosya nesneniz olduğunda, her seferinde bir satır olmak üzere dosyanın içeriğini yinelemek for döngüsünü kullanabilir ve aşağıda gösterildiği gibi yazdırabilirsiniz. Bir seferde yalnızca bir satıra nasıl eriştiğimize ve tüm dosya içeriğini okumadığımıza dikkat edin.

 with open('lib.txt','r') as f: for line in f: print(line, end='')

Not : Python'un print() işlevini kullanırken, varsayılan ayırıcı bir yeni satırdır '\n' karakteri. Ama orijinal dosyada bu yeni satırlar yok. Bu nedenle, dosyanın içeriğini olduğu gibi yazdırmak için ayırıcı argümanı boş bir dizeye ayarlayın: end = '' .

Python'da Dosyadan İçerik Parçaları Nasıl Okunur

Python'da dosyanın içeriğini küçük parçalar halinde okumayı da seçebilirsiniz.

Aşağıdaki kodu baştan sona okuyun:

  • Burada, chunk_size değerini 50 olarak ayarladık. Bu, dosyadaki ilk 50 karakterin okunacağı ve ayrıca yazdırılacağı anlamına gelir.
  • Şimdi, f dosya nesnesindeki tell() yöntemini çağırın. Dosya işaretçisinin şimdi 51 konumunda olduğunu görebilirsiniz - bu beklendiği gibi.
 chunk_size = 50 with open('lib.txt','r') as f: chunk = f.read(chunk_size) print(chunk) current = f.tell() print(f"Current position of file pointer: {current}") # Output Hello, there! Here are a few helpful Python librar Current position of file pointer: 51

Bu tekniği, dosyanın tamamını küçük parçalar halinde okumak için de kullanabilirsiniz.

Aşağıdaki kod parçası, bunu nasıl yapabileceğinizi gösterir.

 chunk_size = 50 with open('lib.txt','r') as f: chunk = f.read(chunk_size) print(chunk,end='') while(len(chunk)>0): chunk = f.read(chunk_size) print(chunk,end='') # Output Hello, there! Here are a few helpful Python libraries: 1) NumPy 2) pandas 3) matplotlib 4) seaborn 5) scikit-learn 6) BeautifulSoup 7) Scrapy 8) nltk 9) Bokeh 10) statsmodels

Burada dosyanın içeriğini okumak için bir while döngüsü kullanıyoruz. Dosyanın sonuna ulaşana kadar dosyanın içeriğini 50 boyutunda bir yığın halinde okuruz.

Python'da Dosyaya Nasıl Yazılır

Python'da bir metin dosyasına yazmak için, onu 'w' belirterek yazma modunda açmalısınız.

python-dosyaya-yazma

Aşağıdaki kod parçası nasıl yapılacağını gösterir.

 with open('new_file.txt','w') as f: f.write('Hello, Python!')

'new_file.txt' çalışma dizininizde oluşturulduğunu göreceksiniz.

Şimdi yukarıdaki kod hücresini bir kez daha çalıştırın.

Terminalinizde aşağıdaki komutu çalıştırın:

 cat new_file.txt # Output: Hello, Python!

İdeal olarak, dosyaya iki kez yazdık. Hello, Python! iki kez basılmış olmalı, evet?

Ancak sadece bir kez basıldığını göreceksiniz. Bunun nedeni, bir dosyayı yazma ( w ) modunda açtığınızda, temelde dosyanın içeriğinin üzerine yeni içerik yazarsınız.

Mevcut içeriğin üzerine yazmadan dosyanın sonuna eklemek isterseniz, dosyayı ekleme modunda açmalısınız. Ve bunu nasıl yapacağınızı bir sonraki bölümde göreceksiniz.

Python'da Dosyaya Nasıl Eklenir

Bir dosyaya içerik eklemek istiyorsanız, üzerine yazmadan dosyayı ekleme modunda açın.

Bunu yapmak için, ` 'a' - ekleme için a - kullanın ve modu açıkça belirtin.

Ardından, aşağıdaki kod hücresini iki kez çalıştırın.

 with open('new_file.txt','a') as f: f.write('Hello, Python!')

Dosyaya eklediğimiz gibi, metnin şimdi iki kez nasıl yazdırıldığına dikkat edin.

 cat new_file.txt # Output: Hello, Python!Hello, Python!

Çözüm

Bu eğitimde neler yaptığımızı hızlıca özetleyelim.

  • Okuma, yazma ve dosyaya ekleme gibi genel dosya G/Ç işlemlerini öğrendiniz.
  • Ayrıca, dosya işaretçisini belirli bir konuma taşımak için search() yöntemini nasıl kullanacağınızı da öğrendiniz ve
  • dosya işaretçisinin geçerli konumunu almak için tell() yönteminin nasıl kullanılacağı.

Umarım bu öğreticiyi faydalı bulmuşsunuzdur. Artık Python'da metin dosyalarıyla nasıl çalışacağınızı öğrendiğinize göre, Python'da JSON dosyalarıyla nasıl çalışacağınızı öğrenin.

İlişkili:

Python'da bir listenin uzunluğunu 3 adımda kontrol edin.