piton

Python'da CSV Dosyaları Nasıl Kullanılır?

Python'da CSV Dosyaları Nasıl Kullanılır?
Bu makale, Python kullanarak "csv" dosyalarının işlenmesiyle ilgili bir eğitimi kapsayacaktır. "csv" terimi, her satır veya satırın virgülle ayrılmış metin tabanlı değerleri içerdiği "virgülle ayrılmış değerler" anlamına gelir. Bazı durumlarda değerleri ayırmak için "virgül" yerine "noktalı virgül" de kullanılır. Ancak bu, dosya formatı kurallarında pek bir fark yaratmaz ve her iki ayırıcı türünü de işleme mantığı aynı kalır.

CSV dosya formatı en yaygın olarak veritabanlarını ve elektronik tabloları korumak için kullanılır. Bir CSV dosyasındaki ilk satır en yaygın olarak sütun alanlarını tanımlamak için kullanılırken kalan diğer satırlar satır olarak kabul edilir. Bu yapı, kullanıcıların CSV dosyalarını kullanarak tablo halinde veri sunmasına olanak tanır. CSV dosyaları herhangi bir metin düzenleyicide düzenlenebilir. Ancak, LibreOffice Calc gibi uygulamalar gelişmiş düzenleme araçları, sıralama ve filtreleme işlevleri sağlar.

Python Kullanarak CSV Dosyalarından Veri Okuma

Python'daki CSV modülü, CSV dosyalarında saklanan tüm verileri okumanıza, yazmanıza ve değiştirmenize olanak tanır. Bir CSV dosyasını okumak için Python'un standart kütüphanesinde bulunan Python'un “csv” modülünden “reader” yöntemini kullanmanız gerekecektir.

Aşağıdaki verileri içeren bir CSV dosyanız olduğunu düşünün:

Mango, Muz, Elma, Portakal
50,70,30,90

Dosyanın ilk satırı, her sütun kategorisini, bu durumda meyvelerin adını tanımlar. İkinci satır, her sütunun altındaki değerleri depolar (eldeki stok). Tüm bu değerler virgülle sınırlandırılmıştır. Bu dosyayı LibreOffice Calc gibi bir elektronik tablo uygulamasında açacak olsaydınız, şöyle görünürdü:

Şimdi “meyvelerden” değerleri okumak için.csv” dosyasını Python'un “csv” modülünü kullanarak aşağıdaki formatta “reader” yöntemini kullanmanız gerekecektir:

csv'yi içe aktar
open("meyveler.csv") dosyası olarak:
data_reader = csv.okuyucu(dosya)
data_reader'daki satır için:
yazdır (çizgi)

Yukarıdaki örnekteki ilk satır, “csv” modülünü içe aktarır. Ardından, sabit sürücünüzde depolanan bir dosyayı güvenli bir şekilde açmak için “with open” ifadesi kullanılır (“meyveler.csv” bu durumda). “csv” modülünden “reader” yöntemi çağrılarak yeni bir “data_reader” nesnesi oluşturulur. Bu "okuyucu" yöntemi, zorunlu bir argüman olarak bir dosya adı alır, bu nedenle "meyveler" referansı.csv” ona iletilir. Ardından, “meyvelerden” her satırı yazdırmak için bir “for” döngüsü ifadesi çalıştırılır.csv” dosyası. Yukarıda bahsedilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

['50', '70', '30', '90']

Çıktıya satır numaraları atamak istiyorsanız, yinelenebilir bir öğedeki her öğeye bir sayı atayan “numaralandırma” işlevini kullanabilirsiniz (değiştirilmedikçe 0'dan başlayarak).

csv'yi içe aktar
open("meyveler.csv") dosyası olarak:
data_reader = csv.okuyucu(dosya)
dizin için, numaralandırmadaki satır (data_reader):
yazdır (dizin, satır)

"İndeks" değişkeni, her öğenin sayısını tutar. Yukarıda bahsedilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

0 ['Mango', 'Muz', 'Elma', 'Portakal']
1 ['50', '70', '30', '90']

Bir "csv" dosyasındaki ilk satır tipik olarak sütun başlıkları içerdiğinden, şu başlıkları çıkarmak için "numaralandır" işlevini kullanabilirsiniz:

csv'yi içe aktar
open("meyveler.csv") dosyası olarak:
data_reader = csv.okuyucu(dosya)
dizin için, numaralandırmadaki satır (data_reader):
dizin == 0 ise:
başlıklar = satır
baskı (başlıklar)

Yukarıdaki ifadedeki “if” bloğu, dizinin sıfıra eşit olup olmadığını kontrol eder (“meyvelerdeki ilk satır”.csv” dosyası). Evet ise, “satır” değişkeninin değeri yeni bir “başlıklar” değişkenine atanır. Yukarıdaki kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

['Mango', 'Muz', 'Elma', 'Portakal']

“csv”yi çağırırken kendi sınırlayıcınızı kullanabileceğinizi unutmayın.Aşağıdaki biçimde isteğe bağlı bir "sınırlayıcı" argümanı kullanarak okuyucu" yöntemi:

csv'yi içe aktar
open("meyveler.csv") dosyası olarak:
data_reader = csv.okuyucu(dosya, sınırlayıcı=";")
data_reader'daki satır için:
yazdır (çizgi)

Bir csv dosyasında, her sütun bir satırdaki değerlerle ilişkilendirildiğinden, bir "csv" dosyasından veri okurken bir Python "sözlüğü" nesnesi oluşturmak isteyebilirsiniz. Bunu yapmak için aşağıdaki kodda gösterildiği gibi “DictReader” yöntemini kullanmanız gerekir:

csv'yi içe aktar
open("meyveler.csv") dosyası olarak:
data_reader = csv.DiktOkuyucu(dosya)
data_reader'daki satır için:
yazdır (çizgi)

Yukarıda bahsedilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

'Mango': '50', 'Muz': '70', 'Elma': '30', 'Turuncu': '90'

Artık tek tek sütunları satırlardaki karşılık gelen değerlerle ilişkilendiren bir sözlük nesneniz var. Yalnızca bir satırınız varsa bu iyi çalışır. Diyelim ki “meyveler.csv” dosyası artık meyve stoğunun yok olmasının kaç gün süreceğini belirten ek bir satır içeriyor.

Mango, Muz, Elma, Portakal
50,70,30,90
3,1,6,4

Birden çok satırınız olduğunda, yukarıdaki aynı kod örneğini çalıştırmak farklı çıktılar üretecektir.

'Mango': '50', 'Muz': '70', 'Elma': '30', 'Turuncu': '90'
'Mango': '3', 'Muz': '1', 'Elma': '6', 'Turuncu': '4'

Bir Python sözlüğünde bir sütuna ait tüm değerleri bir anahtar/değer çiftiyle eşleştirmek isteyebileceğiniz için bu ideal olmayabilir. Bunun yerine bu kod örneğini deneyin:

csv'yi içe aktar
open("meyveler.csv") dosyası olarak:
data_reader = csv.DiktOkuyucu(dosya)
data_dict =
data_reader'daki satır için:
anahtar için, satırdaki değer.öğeler():
data_dict.setdefault(anahtar, [])
data_dict[anahtar].ekle(değer)
yazdır (data_dict)

Yukarıda bahsedilen kod örneğini çalıştırdıktan sonra aşağıdaki çıktıyı almalısınız:

'Mango': ['50', '3'], 'Muz': ['70', '1'], 'Elma': ['30', '6'], 'Turuncu': ['90 ', '4']

Anahtar/değer çiftleri üzerinde döngü oluşturmak için “DictReader” nesnesinin her öğesinde bir “for” döngüsü kullanılır. Bundan önce yeni bir Python sözlük değişkeni "data_dict" tanımlanmıştır. Nihai veri eşlemelerini depolayacak. İkinci “for” döngü bloğunun altında Python sözlüğünün “setdefault” yöntemi kullanılır. Bu yöntem, bir sözlük anahtarına bir değer atar. Anahtar/değer çifti yoksa, belirtilen bağımsız değişkenlerden yeni bir tane oluşturulur. Yani bu durumda, zaten mevcut değilse, bir anahtara yeni bir boş liste atanacaktır. Son olarak, son "data_dict" nesnesindeki karşılık gelen anahtarına "değer" eklenir.

Bir CSV Dosyasına Veri Yazma

Bir “csv” dosyasına veri yazmak için “csv” modülünden “writer” yöntemini kullanmanız gerekecektir. Aşağıdaki örnek, mevcut “meyvelere” yeni bir satır ekleyecektir.csv” dosyası.

csv'yi içe aktar
open("meyveler.csv", "a") dosya olarak:
data_writer = csv.yazar(dosya)
data_writer.yazma satırı([3,1,6,4])

İlk ifade, dosyayı “a” argümanı ile gösterilen “ekleme” modunda açar. Daha sonra “yazar” yöntemi çağrılır ve “meyveler”.csv” dosyası argüman olarak kendisine iletilir. "writerow" yöntemi dosyaya yeni bir satır yazar veya ekler.

Python sözlüğünü bir "csv" dosya yapısına dönüştürmek ve çıktıyı bir "csv" dosyasına kaydetmek istiyorsanız, şu kodu deneyin:

csv'yi içe aktar
open("meyveler.csv", "w") dosya olarak:
başlıklar = ["Mango", "Muz", "Elma", "Portakal"]
data_writer = csv.DictWriter(dosya, alan adları=başlıklar)
data_writer.yazma başlığı()
data_writer.writerow("Mango": 50, "Muz": 70, "Elma": 30, "Turuncu": 90)
data_writer.writerow("Mango": 3, "Muz": 1, "Elma": 6, "Turuncu": 4)

Boş bir “meyve” açtıktan sonra.csv” dosyasında, “with open” ifadesi kullanılarak, sütun başlıklarını içeren yeni bir “headings” değişkeni tanımlanmıştır. “DictWriter” yöntemi çağrılarak ve “meyvelere” referansı geçirilerek yeni bir “data_writer” nesnesi oluşturulur.csv” dosyası ve bir “fieldnames” argümanı. Sonraki satırda sütun başlıkları “writeheader” yöntemi kullanılarak dosyaya yazılır. Son iki ifade, önceki adımda oluşturulan ilgili başlıklarına yeni satırlar ekler.

Sonuç

CSV dosyaları, verileri tablo biçiminde yazmak için düzgün bir yol sağlar. Python'un yerleşik "csv" modülü, "csv" dosyalarında bulunan verileri işlemeyi ve bunlara daha fazla mantık uygulamayı kolaylaştırır.

How to download and Play Sid Meier's Civilization VI on Linux
Introduction to the game Civilization 6 is a modern take on the classic concept introduced in the series of the Age of Empires games. The idea was fai...
How to Install and Play Doom on Linux
Introduction to Doom The Doom Series originated in the 90s after the release of the original Doom. It was an instant hit and from that time onwards th...
Vulkan for Linux Users
With each new generation of graphics cards, we see game developers push the limits of graphical fidelity and come one step closer to photorealism. But...