Python

Cara Mengendalikan Fail CSV di Python

Cara Mengendalikan Fail CSV di Python
Artikel ini akan merangkumi tutorial mengendalikan fail "csv" menggunakan Python. Istilah "csv" bermaksud "nilai dipisahkan koma" di mana setiap baris atau baris mengandungi nilai berdasarkan teks yang dibatasi oleh koma. Dalam beberapa kes, "titik koma" juga digunakan sebagai pengganti "koma" untuk memisahkan nilai. Walau bagaimanapun, ini tidak memberi banyak perbezaan pada peraturan format fail dan logik untuk menangani kedua-dua jenis pemisah tetap sama.

Format fail CSV paling sering digunakan untuk memelihara pangkalan data dan spreadsheet. Baris pertama dalam fail CSV paling sering digunakan untuk menentukan bidang lajur sementara baris lain yang tersisa dianggap sebagai baris. Struktur ini membolehkan pengguna menyajikan data tabel menggunakan fail CSV. Fail CSV dapat diedit di mana-mana penyunting teks. Walau bagaimanapun, aplikasi seperti LibreOffice Calc menyediakan alat penyuntingan, penyortiran, dan fungsi penapis lanjutan.

Membaca Data dari Fail CSV Menggunakan Python

Modul CSV di Python membolehkan anda membaca, menulis dan memanipulasi data yang disimpan dalam fail CSV. Untuk membaca fail CSV, anda perlu menggunakan kaedah "pembaca" dari modul "csv" Python yang disertakan dalam pustaka standard Python.

Pertimbangkan bahawa anda mempunyai fail CSV yang mengandungi data berikut:

Mangga, Pisang, Epal, Jeruk
50,70,30,90

Baris pertama fail menentukan setiap kategori lajur, nama buah dalam kes ini. Baris kedua menyimpan nilai di bawah setiap lajur (stok di tangan). Semua nilai ini dibatasi oleh koma. Sekiranya anda membuka fail ini dalam aplikasi spreadsheet seperti LibreOffice Calc, ia akan kelihatan seperti ini:

Sekarang untuk membaca nilai dari "buah-buahan.fail csv "menggunakan modul" csv "Python, anda perlu menggunakan kaedah" pembaca "dalam format berikut:

import csv
dengan buah-buahan terbuka (".csv ") sebagai fail:
data_reader = csv.pembaca (fail)
untuk baris dalam data_reader:
cetak (garisan)

Baris pertama dalam contoh di atas mengimport modul "csv". Seterusnya, pernyataan “dengan terbuka” digunakan untuk membuka fail yang disimpan di cakera keras anda dengan selamat (“buah-buahan.csv ”dalam kes ini). Objek "data_reader" baru dibuat dengan memanggil kaedah "pembaca" dari modul "csv". Kaedah "pembaca" ini mengambil nama file sebagai argumen wajib, jadi rujukan ke "buah-buahan.csv ”diteruskan kepadanya. Seterusnya, pernyataan gelung “untuk” dijalankan untuk mencetak setiap baris dari “buah-buahan.fail csv ”. Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat output berikut:

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

Sekiranya anda ingin memberikan nombor baris ke output, anda dapat menggunakan fungsi "menghitung" yang memberikan nombor untuk setiap item secara berulang (bermula dari 0 kecuali diubah).

import csv
dengan buah-buahan terbuka (".csv ") sebagai fail:
data_reader = csv.pembaca (fail)
untuk indeks, garis dalam bilangan (data_reader):
cetak (indeks, garis)

Pemboleh ubah "indeks" menyimpan kiraan untuk setiap elemen. Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat output berikut:

0 ['Mango', 'Banana', 'Apple', 'Orange']
1 ['50', '70', '30', '90']

Oleh kerana baris pertama dalam file "csv" biasanya berisi tajuk lajur, Anda dapat menggunakan fungsi "menghitung" untuk mengekstrak tajuk berikut:

import csv
dengan buah-buahan terbuka (".csv ") sebagai fail:
data_reader = csv.pembaca (fail)
untuk indeks, garis dalam bilangan (data_reader):
jika indeks == 0:
tajuk = garis
cetak (tajuk)

Blok “if” dalam pernyataan di atas memeriksa apakah indeks sama dengan sifar (baris pertama dalam “buah-buahan.fail csv). Sekiranya ya, maka nilai pemboleh ubah "baris" diberikan kepada pemboleh ubah "tajuk" baru. Selepas, menjalankan contoh kod di atas, anda akan mendapat output berikut:

['Mango', 'Banana', 'Apple', 'Orange']

Perhatikan bahawa anda boleh menggunakan pembatas anda sendiri ketika memanggil “csv.kaedah pembaca "dengan menggunakan argumen" pembatas "pilihan dalam format berikut:

import csv
dengan buah-buahan terbuka (".csv ") sebagai fail:
data_reader = csv.pembaca (fail, pembatas = ";")
untuk baris dalam data_reader:
cetak (garisan)

Oleh kerana dalam file csv, setiap kolom dikaitkan dengan nilai berturut-turut, Anda mungkin ingin membuat objek "kamus" Python ketika membaca data dari fail "csv". Untuk melakukannya, anda perlu menggunakan kaedah "DictReader", seperti yang ditunjukkan dalam kod di bawah:

import csv
dengan buah-buahan terbuka (".csv ") sebagai fail:
data_reader = csv.DictReader (fail)
untuk baris dalam data_reader:
cetak (garisan)

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat output berikut:

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'

Jadi sekarang anda mempunyai objek kamus yang mengaitkan lajur individu dengan nilai yang sesuai dalam baris. Ini berfungsi dengan baik jika anda hanya mempunyai satu baris. Mari kita anggap bahawa "buah-buahan.fail csv ”kini merangkumi baris tambahan yang menentukan berapa hari yang diperlukan agar stok buah musnah.

Mangga, Pisang, Epal, Jeruk
50,70,30,90
3,1,6,4

Apabila anda mempunyai beberapa baris, menjalankan contoh kod yang sama di atas akan menghasilkan output yang berbeza.

'Mango': '50', 'Banana': '70', 'Apple': '30', 'Orange': '90'
'Mango': '3', 'Banana': '1', 'Apple': '6', 'Orange': '4'

Ini mungkin tidak sesuai kerana anda mungkin ingin memetakan semua nilai yang berkaitan dengan satu lajur ke satu pasangan nilai-kunci dalam kamus Python. Cuba contoh kod ini:

import csv
dengan buah terbuka (".csv ") sebagai fail:
data_reader = csv.DictReader (fail)
data_dict =
untuk baris dalam data_reader:
untuk kunci, nilai sejajar.item ():
data_keputusan.setdefault (kunci, [])
data_dict [kunci].tambahkan (nilai)
cetak (data_dict)

Setelah menjalankan contoh kod yang disebutkan di atas, anda akan mendapat output berikut:

'Mango': ['50', '3'], 'Banana': ['70', '1'], 'Apple': ['30', '6'], 'Orange': ['90 ',' 4 ']

Gelung "untuk" digunakan pada setiap elemen objek "DictReader" untuk menggulung pasangan nilai-kunci. Pembolehubah kamus Python baru "data_dict" ditakrifkan sebelum itu. Ia akan menyimpan pemetaan data akhir. Di bawah blok gelung "untuk" kedua, kaedah "setdefault" kamus Python digunakan. Kaedah ini memberikan nilai pada kunci kamus. Sekiranya pasangan nilai-kunci tidak wujud, pasangan baru dibuat dari argumen yang ditentukan. Jadi dalam kes ini, senarai kosong baru akan diberikan kepada kunci jika belum ada. Terakhir, "nilai" ditambahkan pada kunci yang sesuai dalam objek "data_dict" terakhir.

Menulis Data ke Fail CSV

Untuk menulis data ke fail "csv", anda perlu menggunakan kaedah "penulis" dari modul "csv". Contoh di bawah ini akan menambahkan baris baru pada buah-buahan yang ada.fail csv ”.

import csv
dengan buah-buahan terbuka (".csv "," a ") sebagai fail:
data_writer = csv.penulis (fail)
penulis_ data.penulis ([3,1,6,4])

Pernyataan pertama membuka fail dalam mod "append", dilambangkan dengan argumen "a". Selanjutnya kaedah "penulis" dipanggil dan rujukan untuk "buah-buahan.fail csv ”diteruskan kepadanya sebagai argumen. Kaedah "penulis" menulis atau menambah baris baru ke fail.

Sekiranya anda ingin menukar kamus Python ke struktur fail "csv" dan menyimpan output dalam fail "csv", cuba kod ini:

import csv
dengan buah-buahan terbuka (".csv "," w ") sebagai fail:
tajuk = ["Mangga", "Pisang", "Apple", "Oren"]
data_writer = csv.DictWriter (fail, nama bidang = tajuk)
penulis_ data.ketua tulis ()
penulis_ data.writerow ("Mango": 50, "Banana": 70, "Apple": 30, "Orange": 90)
penulis_ data.writerow ("Mango": 3, "Banana": 1, "Apple": 6, "Orange": 4)

Setelah membuka buah kosong.file csv "menggunakan pernyataan" dengan terbuka "," tajuk "pemboleh ubah baru didefinisikan yang berisi tajuk lajur. Objek baru "data_writer" dibuat dengan memanggil metode "DictWriter" dan menyampaikannya ke "buah-buahan".fail csv "dan argumen" nama lapangan ". Pada baris berikutnya, tajuk lajur ditulis ke file menggunakan metode "writeheader". Dua pernyataan terakhir menambah baris baru pada tajuk yang sesuai yang dibuat pada langkah sebelumnya.

Kesimpulannya

Fail CSV menyediakan cara yang kemas untuk menulis data dalam format jadual. Modul "csv" bawaan Python menjadikannya mudah untuk mengendalikan data yang tersedia dalam fail "csv" dan menerapkan logik selanjutnya.

Cara Menunjukkan Kaunter FPS dalam Permainan Linux
Permainan Linux mendapat dorongan utama ketika Valve mengumumkan sokongan Linux untuk klien Steam dan permainan mereka pada tahun 2012. Sejak itu, ban...
Cara memuat turun dan Mainkan Sid Meier's Civilization VI di Linux
Pengenalan permainan Civilization 6 adalah konsep moden mengenai konsep klasik yang diperkenalkan dalam siri permainan Age of Empires. Idea itu cukup ...
Cara Memasang dan Memainkan Doom di Linux
Pengenalan Doom Seri Doom berasal dari tahun 90an selepas pembebasan Doom yang asal. Ini adalah hit seketika dan sejak saat itu dan seterusnya siri pe...