Python ile Yaygın Dosya Biçimleri Nasıl Okunur?

Eğer veri bilimiyle uğraşıyorsanız farklı dosya formatlarıyla çalışmak zorunda kalabilirsiniz. Çünkü gelen veriler her zaman csv formatında olmayacaktır. Bu farklı dosya formatlarına hakim olmak, veri bilimi endüstrisindeki başarınız için kritik bir öneme sahiptir. İçinde yaşadığımız modern dijital çağ, birden fazla veri kaynağından toplanan her türlü dosya formatıyla çalışmaya zorluyor. Python ile bu yaygın dosya biçimleri nasıl okunur, bu yazımızda öğrenelim.

Python ile Zip Dosyası Okuma

Python ile yaygın dosya biçimleri yazısının ilk örneği olan ZIP ile başlayacağız. Zip dosyaları adeta kod yaratıcılarının bir armağanı, depolama alanımızı ve zamanımızı korumak için gökten düşmüş bir mucize gibidir. Teknik olarak konuşacak olursak, ZIP kayıpsız veri sıkıştırmayı destekleyen bir arşiv dosyası biçimidir. Bu, dosyayı sıkıştırma ya da açma işleminde verilerinizin kaybolma konusunda endişelenmenize gerek olmadığı anlamına gelir.

Python ile bir ZIP dosyası nasıl açılır, bakalım. Bunun için Python’daki zip dosya kütüphanesine ihtiyacınız olacak.

# ZipFile kütüphanesini yükleyelim

from zipfile import ZipFile

dosya = './cola_public.zip'

with ZipFile(dosya,'r') as zip:
          zip.printdir()
          zip.extractall()

Yukarıdaki kodu çalıştırdığınızda şöyle bir çıktı almalısınız:

zip-output

Python ile Metin Dosyası Okuma

Metin dosyaları, veri depolamak için kullanılan en yaygın dosya biçimlerinden birisidir. Python, metin dosyalarından veri okumayı çok kolaylaştırır.

Python, dosyaları okumanız için open() fonksiyonu sağlar. Metin dosyasını okumak için dosya erişim modu “r” dır. Diğer erişim modları ise şunlardır:

  • ‘w’ – bir dosyaya yazma
  • ‘r+’ veya ‘w+’ – bir dosyayı okuma ve yazma
  • ‘a’ – mevcut olan bir dosyaya eklemek
  • ‘a+’ – dosya okunduktan sonra ekleme yapmak

Bunların dışında Python metin dosyasından veri okumak için bizlere üç fonksiyon sağlar:

  • read(n): Bu fonksiyon, metin dosyalarından verilen n parametresi kadar bayt okur. Eğer bu parametre verilmezse, varsayılan olarak bütün dosyayı okur.
  • readline(n): Bu fonksiyon, dosyadan n bayt okumanıza izin verir, ancak birden fazla satırı okuyamaz.
  • readlines(): Bu fonksiyon, dosyadaki tüm bilgileri okur ancak read() fonksiyonundan farklı olarak, ayraçlarla uğraşmaz ve bunları liste biçiminde de yazdırmaz.
with open(r'./teknoloji.txt','r') as f:

         print(f.read()) 

Yukarıdaki Python kodunu çalıştırdığımızda şöyle bir çıktı elde ederiz:

txt-output

read() fonksiyonu, dosyadaki tüm verileri doğru yapılandırılmış biçimde içeri aktardı.

with open(r'./teknoloji.txt','r') as f:

         print(f.read(10)) 

Eğer read() fonksiyonuna parametre olarak 10 sayısını verirsek .txt dosyasındaki ilk 10 karakteri bize getirecektir.

txt-output-2
with open(r'./teknoloji.txt','r') as f:

         print(f.readline()) 

Eğer readline() fonksiyonunu kullanmış olsaydık, bize sadece ilk satırı getirecekti.

txt-output-3
with open(r'./teknoloji.txt','r') as f:

         print(f.readlines()) 

readlines() fonksiyonunu yazdığımızda ise şöyle bir çıktı alıyoruz:

txt-output-4

Python ile CSV Dosyaları Okuma

CSV yani virgülle ayrılmış değer dosyası, bir veri bilimcinin çalışabileceği en yaygın dosya biçimi olarak görülebilir. Bu dosyalar, değerleri ayırmak için ayırıcı olarak “,” kullanılır ve CSV dosyasındaki her satır bir veri kaydıdır.

Python ile CSV dosyasını okumak için kullanacağımız kütüphane Pandas kütüphanesidir.

import pandas as pd 

df = pd.read_csv(r'./Tweets.csv')

print(df.sample(10))
csv-output

Python ile Excel Dosyaları Okuma

Birçoğunuz Excel dosyalarına ve bunların verileri depolamak için neden bu kadar yaygın olarak kullanıldığına aşinasınızdır. Bu yüzden direkt Python ile Pandas kütüphanesini kullanarak nasıl okuyoruz, görelim.

Pandas kütüphanesinin Excel dosyalarını okumak için tıpkı CSV dosyalarında olduğu gibi read_excel() fonksiyonu bulunmaktadır.

# read Excel file into a DataFrame

df = pd.read_excel(r'./Importing files/World_city.xlsx')

# print values
df.sample(10)
python-ile-yaygın-dosya-biçimleri-excel

Python ile JSON Dosyaları Okuma

JSON (Javascript Nesne Gösterimi) dosya biçimleri veri depolamak için oldukça kullanışlı ve okunabilirdir. Makinelerin bu dosyaları ayrıştırması ve oluşturması kolaydır ve JavaScprit programlama dilini temel alır.

JSON dosyaları, Python’daki sözlük mantığına oldukça benzerdir. Veriler “{}” içinde depolanır. En büyük artısı ise, bir programlama dilinden bağımsız olmalıdır, yani Python, C ve hatta Java dili ile programlama dili ile kullanılabilirler.

JSON dosyaları şöyle gözükür.

Python, JSON dosyalarını okumak için json modülü sağlar. Metin dosyalarında olduğu gibi JSON dosyalarını da çok kolay bir şekilde okuyabilirsiniz. Metin dosyalarından farklı olarak json.load() fonksiyonu kullanılıyor ve bu fonksiyon bir JSON sözlüğü döndürüyor.

Daha sonra pandas kütüphanesi kullanarak yine çok kolay bir şekilde dataframe haline getirebilirsiniz.

import pandas as pd 

import json

# open json file
with open('./free-bike-status-1.json','r') as file:
    data = json.load(file)

# json dictionary
print(type(data))

# loading into a DataFrame
df_json = pd.DataFrame(data)
python-ile-yaygın-dosya-biçimleri-json

Python ile Pickle Dosyaları Okuma

Pickle dosyaları, Python nesnelerinin serileştirilmiş formunu saklamak için kullanılır. Bu, list, set, tuple, dict vb. nesnelerin diskte saklanmadan önce bir karakter akışına dönüştürüldüğü anlamına gelir. Bunlar özellikle makine öğrenme modelinizi eğittiğinizde ve daha sonra tahminde bulunmak için bunları kaydetmek istediğinizde oldukça kullanışlıdır.

Python ile bu yükleme işlemi pickle.load() fonksiyonu ile yapılıyor. Ancak pickle dosyasını Python’da open() ile açtığınızda, ikili dosyası okumak için ‘rb’ parametresini sağlamanız gerekir.

import pickle

with open('./Importing files/sample_pickle.pkl','rb') as file:
    data = pickle.load(file)

# pickle data
print(type(data))

df_pkl = pd.DataFrame(data)

Teknoloji'den geri kalmamak için e-posta listemize abone olun!

Muğla Sıtkı Koçman Üniversitesi Bilgisayar Mühendisliği 3.sınıf öğrencisi.