Python’da Listeyi Kaydetmenin Yolları

Giriş

Python programlama dilinde verileri saklamak için kullanılan en yaygın veri yapılarından biri listedir. Liste, iç içe listeler dahil olmak üzere farklı türde verileri düzenli bir şekilde tutmak için oldukça kullanışlıdır. Ancak, bir listeyi kalıcı hale getirmek, yani program tekrar çalıştırıldığında kaydedilen verilerin tekrar kullanılabilmesi önemlidir. Bu yazıda, Python’da bir listeyi nasıl kaydedebileceğinizi anlatacak ve farklı yöntemlerle bu işlemi nasıl gerçekleştirebileceğinizi detaylandıracağız.

Listeyi Dosyaya Yazmak

Bir listeyi kaydetmenin en basit yollarından biri, onu bir dosyaya yazmaktır. Python’da dosya işlemleri, ‘open’ fonksiyonu sayesinde oldukça kolaydır. Aşağıda adım adım bir listeyi metin dosyasına yazma işlemini göstereceğiz.

Adım 1: Dosya Açma

Öncelikle bir dosya açmalısınız. ‘open’ fonksiyonunu kullanarak dosyayı ‘w’ (yazma) modunda açabilirsiniz. Eğer dosya daha önce yoksa, bu işlem dosyayı oluşturacaktır; eğer dosya zaten mevcutsa, içeriği silip yeni içerik ile dolduracaktır.

my_list = [1, 2, 3, 4, 5]
with open('my_list.txt', 'w') as f:
    for item in my_list:
        f.write(f'{item}\n')

Bu kod parçası, ‘my_list’ listesindeki her bir öğeyi tek tek almakta ve bunları ‘my_list.txt’ adlı bir dosyaya yazmaktadır. Her öğeden sonra yeni bir satır eklemek için ‘\n’ karakterini kullanıyoruz.

Adım 2: Dosyadan Okuma

Yazdığınız verileri tekrar kullanmak için dosyayı okunabilir modda açmalısınız. Bunun için ‘r’ (okuma) modunu kullanabilirsiniz. Aşağıda, daha önce kaydedilen listeyi geri okuma işlemine dair bir örnek bulunmaktadır.

with open('my_list.txt', 'r') as f:
    loaded_list = [int(line.strip()) for line in f]
print(loaded_list)

Bu kod, ‘my_list.txt’ dosyasından her satırı okuyup, her birini tamsayıya çevirerek yeni bir liste oluşturur. ‘strip()’ fonksiyonu, satırların başındaki ve sonundaki boşlukları kaldırmaktadır. Sonuç olarak, ‘loaded_list’ içerisinde orijinal ‘my_list’ verilere ulaşmış oluruz.

JSON Formatında Kaydetme

Liste verilerini kaydetmenin bir diğer etkili yöntemi, JSON (JavaScript Object Notation) formatını kullanmaktır. JSON, verileri yapısal bir biçimde saklamak için yaygın olarak kullanılır ve Python’da bu işlemi yapmak oldukça basittir.

Adım 1: JSON Kütüphanesini Kullanma

JSON formatında veri kaydetmek için öncelikle JSON kütüphanesini import etmemiz gerekiyor. Aşağıda, bir listeyi JSON formatında nasıl kaydedebileceğinize dair örnek bulunmaktadır.

import json

my_list = [1, 2, 3, 4, 5]
with open('my_list.json', 'w') as f:
    json.dump(my_list, f)

Bu örnekte, ‘my_list’ adlı listeyi ‘my_list.json’ dosyasına kaydettik. ‘json.dump()’ fonksiyonu, verilen nesneyi dosyaya JSON formatında yazar.

Adım 2: JSON Dosyasından Okuma

Kaydedilen JSON dosyasından verileri geri almak da basittir. Aşağıda, JSON dosyasından bir listeyi okuma işlemi gösterilmiştir.

with open('my_list.json', 'r') as f:
    loaded_list = json.load(f)
print(loaded_list)

Burada, ‘json.load()’ fonksiyonu ile JSON biçiminde kaydedilmiş veriyi okuyarak Python listesine dönüştürmüş olduk. Bu yöntem, veri kaydetme ve geri yükleme işlemlerini oldukça kolaylaştırır.

Pickle Modülü ile Listeyi Kaydetme

Python’da bunu yapmanın bir diğer yolu, ‘pickle’ modülünü kullanmaktır. Pickle, Python nesnelerini ikili (binary) formatta kaydedip geri yüklemek için kullanılır. Listedeki karmaşık nesneleri de rahatlıkla saklayabilmenizi sağlar.

Adım 1: Pickle Kütüphanesini Kullanma

Öncelikle ‘pickle’ kütüphanesini import ederek başlayalım. Aşağıda, bir listeyi pickle ile kaydetme işlemi gösterilmektedir.

import pickle

my_list = [1, 2, 3, 4, 5]
with open('my_list.pkl', 'wb') as f:
    pickle.dump(my_list, f)

Bu örnekte, listeyi ‘my_list.pkl’ adlı ikili dosyaya yazdık. Bu dosya, içindeki veriyi insan tarafından okunamayacak biçimde saklar ve bu nedenle daha güvenlidir.

Adım 2: Pickle Dosyasından Okuma

Pickle ile kaydedilen verileri geri almak için aşağıdaki kod parçasını kullanabilirsiniz:

with open('my_list.pkl', 'rb') as f:
    loaded_list = pickle.load(f)
print(loaded_list)

Bu kodda, ‘pickle.load()’ fonksiyonu ikili dosyayı okuyarak orijinal listeyi geri getirir. Pickle, karmaşık veri türlerini de desteklediği için veri kaydetme işlemlerinizde oldukça kullanışlıdır.

Listeyi Veritabanına Kaydetmek

Bazen, büyük miktarda veriyi yönetmek ve saklamak istediğinizde bir veritabanı kullanmanız gerekebilir. SQLite, Python için çok uygun bir yerel veritabanı sistemidir. Aşağıda, bir listeyi SQLite veritabanına kaydetmek için gerekli adımlar açıklanmıştır.

Adım 1: SQLite ile Bağlantı Kurma

İlk olarak SQLite kütüphanesini içeri aktarmamız gerekiyor. Ardından, bir veritabanı dosyası oluşturarak bağlantı kurabiliriz. Aşağıdaki kod, bir SQLite veritabanı oluşturmaktadır:

import sqlite3

conn = sqlite3.connect('my_database.db')
c = conn.cursor()

c.execute('''CREATE TABLE IF NOT EXISTS my_list (value INTEGER)''')

Bu kod, ‘my_database.db’ adında bir veritabanı dosyası oluşturur ve ‘my_list’ adında bir tablo oluşturur, bu tablonun ‘value’ adlı bir sütunu vardır. Artık liste verimizi bu tabloya kaydedebiliriz.

Adım 2: Listeyi Veritabanına Ekleme

Lütfen aşağıdaki kodu izleyin, bu kod bir listeyi ‘my_list’ tablosuna ekleyecektir:

my_list = [1, 2, 3, 4, 5]
for item in my_list:
    c.execute('INSERT INTO my_list (value) VALUES (?)', (item,))

conn.commit()

Bu döngü, her bir liste öğesini veritabanına eklemektedir. ‘execute()’ fonksiyonu, verilen SQL ifadesini çalıştırır ve ‘?’ sembolü ile geçen veriyi alır. İşlemleri kalıcı hale getirmek için ‘commit()’ fonksiyonu çağrılmalıdır.

Adım 3: Veritabanından Okuma

Son olarak, veritabanına kaydedilen liste verisini geri çekmek için aşağıdaki kodu kullanabilirsiniz:

c.execute('SELECT value FROM my_list')
loaded_list = [row[0] for row in c.fetchall()]

conn.close()
print(loaded_list)

Bu kod, ‘my_list’ tablosundaki tüm değerleri alır ve bunları bir liste halinde toplar. Veritabanı bağlantısını kapatmayı ihmal etmeyin.

Sonuç

Bu yazıda, Python’da bir listeyi saklamak için çeşitli yöntemler keşfettik: dosyaya yazma, JSON formatında kaydetme, pickle kullanma ve SQLite veritabanına ekleme gibi. Her bir yöntem, farklı senaryolar ve ihtiyaçlar için uygundur. Hangi yöntemi seçeceğiniz, uygulamanızın gereksinimlerine ve veri yapınızın karmaşıklığına bağlıdır.

Umarım bu yazı, veri işlemlerinizde daha etkili ve sistematik bir yaklaşım geliştirmenize yardımcı olmuştur. Denemekten çekinmeyin ve kendi projelerinizde bu yöntemleri uygulamayı unutmayın!

Scroll to Top