Cara Membaca dan Membuat File CSV Menggunakan Python

Cara Membaca dan Membuat File CSV Menggunakan Python

CSV adalah akronim dari "Nilai yang Dipisahkan Koma". File CSV adalah dokumen teks biasa yang digunakan untuk mewakili dan bertukar data tabel. Setiap baris dalam file CSV mewakili "entitas", dan setiap kolom mewakili atributnya. Kolom biasanya dipisahkan oleh koma tetapi karakter lain dapat digunakan sebagai pemisah lapangan alih -alih. Dalam tutorial ini kita akan melihat cara membaca dan membuat file csv menggunakan python dan khususnya CSV modul, yang merupakan bagian dari
Perpustakaan Standar Bahasa.

Dalam tutorial ini Anda akan belajar:

  • Cara membaca baris CSV sebagai daftar string
  • Cara membaca CSV sebagai daftar kamus
  • Cara membuat csv menggunakan python
  • Cara membuat CSV mulai dari daftar kamus
Cara Membaca dan Membuat File CSV Menggunakan Python

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi Independen
Perangkat lunak Python3
Lainnya Pengetahuan Dasar Pemrograman Python dan Object Berorientasi
Konvensi # - mensyaratkan Linux -Commands untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$-mensyaratkan Linux-Commands untuk dieksekusi sebagai pengguna reguler yang tidak istimewa

CSV - Nilai terpisah koma

Seperti yang telah kami sebutkan dalam pengenalan tutorial ini, a CSV hanyalah file teks sederhana sederhana, diformat dengan cara yang memungkinkan kami mewakili dan bertukar data tabel. Setiap baris dalam file CSV mewakili entitas entitas, kecuali
baris pertama yang biasanya berisi judul lapangan. Mari kita lihat contohnya. Misalkan kita ingin mewakili karakter dari buku Lord of the Rings dalam format CSV:

Nama, Race Frodo, Hobbit Aragorn, Man Legolas, Elf Gimli, Dwarf 

Yang di atas adalah contoh sepele dari konten file CSV. Seperti yang Anda lihat, kami menggunakan , (koma) sebagai pemisah lapangan. Kami menyimpan data itu dalam file yang dipanggil LOTR.CSV. Mari kita lihat bagaimana kita bisa membacanya menggunakan pemrograman Python
bahasa, dan CSV modul.

Membaca file CSV

Untuk berinteraksi dengan file CSV dengan Python, hal pertama yang harus kami lakukan adalah mengimpor CSV modul. Mari kita tulis skrip sederhana, hanya beberapa baris kode:

#!/usr/bin/env python3 impor csv jika __name__ == '__main__': dengan terbuka ('lotr.csv ', newline = ") sebagai csvfile: pembaca = csv.pembaca (csvfile) untuk baris di pembaca: cetak (baris) 


Dalam contoh ini kami mengira bahwa skrip yang kami buat di atas (sebut saja naskah.py) berada di direktori yang sama dari file CSV, dan Direktori tersebut adalah yang kami saat ini bekerja.

Hal pertama yang kami lakukan adalah mengimpor CSV modul; Kemudian kami membuka file dalam mode baca (default) dengan manajer konteks, sehingga kami yakin bahwa objek file selalu ditutup setiap kali penafsir ada dengan blokir, bahkan jika beberapa jenis kesalahan terjadi. Anda juga dapat melihat bahwa kami menggunakan garis baru argumen dari membuka Fungsi untuk menentukan string kosong sebagai karakter baru. Ini adalah tindakan keamanan, karena, sebagaimana dinyatakan dalam CSV modul
dokumentasi:

Jika newline = "tidak ditentukan, newlines tertanam di dalam bidang yang dikutip tidak akan ditafsirkan dengan benar, dan pada platform yang menggunakan ujung baris \ n pada menulis tambahan akan ditambahkan. Harus selalu aman untuk menentukan newline = ", karena modul CSV melakukan penanganan garis baru (universal) sendiri.

Itu csvfile Objek mewakili file kami yang dibuka: kami meneruskannya sebagai argumen ke CSV.pembaca fungsi yang mengembalikan objek pembaca yang kami referensi melalui CSV_READER variabel. Kami menggunakan objek ini untuk mengulangi melalui setiap baris file, yang dikembalikan sebagai daftar string. Dalam hal ini kami baru saja mencetaknya. Jika kami menjalankan skrip, kami mendapatkan hasil berikut:

$ ./naskah.py ['nama', 'ras'] ['frodo', 'hobbit'] ['aragorn', 'man'] ['legolas', 'elf'] ['gimli', 'kerdil'] 

Itu cukup mudah, bukan? Bagaimana jika karakter selain koma digunakan sebagai pemisah lapangan? Dalam hal ini kita bisa menggunakan Pembatas parameter fungsi, dan tentukan karakter yang harus digunakan. Katakanlah karakter mengatakan adalah |. Kami akan menulis:

CSV_READER = CSV.Pembaca (CSVFile, Delimiter = "|") 
Menyalin

Baca bidang CSV dalam kamus

Yang kami gunakan di atas mungkin adalah cara termudah yang dapat kami gunakan untuk membaca file CSV dengan Python. Itu CSV modul juga mendefinisikan Dictreader kelas, yang mari kita memetakan setiap baris dalam file csv ke kamus, di mana kunci adalah nama bidang dan nilainya adalah konten aktual mereka dalam satu baris. Mari kita lihat contohnya. Inilah cara kami memodifikasi skrip kami:

#!/usr/bin/env python3 impor csv jika __name__ == '__main__': dengan terbuka ('lotr.csv ', newline = ") sebagai csvfile: pembaca = csv.Dictreader (csvfile) untuk baris di pembaca: cetak (baris) 
Menyalin

Itu Dictreader Konstruktor kelas argumen pertama adalah objek file yang dibuat saat kami membuka file. Jika kami meluncurkan skrip, kali ini kami mendapatkan hasil berikut:

'Name': 'frodo', 'race': 'hobbit' 'name': 'aragorn', 'race': 'man' 'name': 'legolas', 'race': 'elf'  'Name': 'gimli', 'race': 'dwarf' 

Seperti yang telah dikatakan, bidang yang terkandung di baris pertama, digunakan sebagai kunci kamus; Tetapi bagaimana jika baris pertama file tidak berisi nama bidang? Dalam hal ini kita dapat menentukannya dengan menggunakan FieldNames parameter Dictreader Konstruktor kelas:

Pembaca = CSV.Dictreader (csvfile, fieldnames = ['name', 'race]) 
Menyalin

Buat file CSV

Sampai sekarang kami baru saja melihat cara membaca data dari file CSV, baik sebagai daftar string masing -masing mewakili baris, dan sebagai kamus. Sekarang mari kita lihat cara membuat file csv. Seperti biasa, kami hanya mulai dengan contoh, dan daripada yang kami jelaskan. Bayangkan kami ingin secara terprogram membuat file CSV yang kami buat secara manual sebelumnya. Ini kode yang akan kami tulis:

#!/usr/bin/env python3 impor csv jika __name__ == '__main__': dengan terbuka ('lotr.csv ',' w ', newline = ") sebagai csvfile: writer = csv.penulis (csvfile) untuk baris di (('nama', 'ras'), ('frodo', 'hobbit'), ('aragorn', 'man'), ('legoals', 'elf'), (' Gimli ',' dwarf ')): penulis.Writerow (baris) 


Hal pertama yang harus Anda perhatikan adalah bahwa kali ini kami membuka LOTR.CSV file dalam mode tulis (w). Dalam mode ini file dibuat jika tidak ada, dan sedang terpotong Jika tidak (periksa artikel kami tentang melakukan operasi input/output pada file dengan python jika Anda ingin tahu lebih banyak tentang subjek ini).

Bukannya a pembaca objek, kali ini kami membuat a penulis satu, menggunakan penulis fungsi yang disediakan di CSV modul. Parameter yang diterima fungsi ini sangat mirip dengan yang diterima oleh pembaca satu. Kami dapat, misalnya, menentukan pembatas alternatif menggunakan parameter dengan nama yang sama.

Karena dalam hal ini kita sudah tahu semua baris CSV sebelumnya, kita dapat menghindari menggunakan loop, dan menulis semuanya sekaligus menggunakan penulis Metode objek penulis:

#!/usr/bin/env python3 impor csv jika __name__ == '__main__': dengan terbuka ('lotr.csv ',' w ', newline = ") sebagai csvfile: writer = csv.penulis (csvfile) penulis.penulis ((('nama', 'ras'), ('frodo', 'hobbit'), ('aragorn', 'man'), ('legolas', 'elf'), ('gimli', 'kurcaci '))) 

Buat file CSV dengan objek Diktwriter

Itu CSV Modul menyediakan a Dikt kelas, yang memungkinkan kami memetakan kamus ke baris CSV. Ini bisa sangat berguna saat data yang kami kerjakan datang dengan cara ini dan ingin mewakili itu dalam bentuk tabel. Mari kita lihat contohnya.
Misalkan Data Karakter LOTR kami direpresentasikan sebagai daftar kamus (mungkin karena akan dikembalikan dari panggilan API yang dibuat dengan permintaan modul). Inilah yang bisa kami tulis untuk membuat CSV berdasarkan itu:

#!/usr/bin/env python3 impor csv karakter_data = ['name': 'frodo', 'race': 'hobbit', 'name': 'aragorn', 'ras': 'man', ' Nama ':' legolas ',' ras ':' elf ', ' name ':' gimli ',' race ':' dwarf '] if __name__ ==' __main__ ': dengan terbuka (' lotr.csv ',' w ') sebagai csvfile: penulis = csv.Diktwriter (csvfile, fieldnames = ('name', 'race')) penulis.penulis writeHeader ().writrowow (karakter_data) 
Menyalin

Mari kita lihat apa yang kami lakukan. Pertama kami membuat contoh dari Dikt kelas, meneruskan sebagai argumen objek file (csvfile) dan dari FieldNames, yang harus berupa urutan nilai yang akan digunakan sebagai nama bidang CSV, dan menentukan urutan nilai apa yang terkandung dalam setiap kamus harus ditulis ke file. Saat dalam kasus Dictreader Konstruktor kelas parameter ini opsional, ini wajib, dan mudah untuk dipahami mengapa.

Setelah membuat penulis objek, kami menyebutnya WriteHeader Metode: Metode ini digunakan untuk membuat baris CSV awal, berisi nama bidang yang kami lewati di konstruktor.

Akhirnya, kami menelepon penulis metode untuk menulis semua baris CSV sekaligus, meneruskan daftar kamus sebagai argumen (di sini kami merujuknya oleh karakter_data variabel). Semua selesai!

Kesimpulan

Dalam artikel ini kami mempelajari dasar -dasar membaca dan membuat file CSV menggunakan bahasa pemrograman Python. Kami melihat cara membaca baris file CSV baik sebagai daftar string dan dalam kamus menggunakan a Dictreader objek, dan cara membuat file csv baru menulis satu baris pada saat itu, atau semua baris sekaligus. Akhirnya, kami melihat cara membuat file CSV mulai dari daftar kamus karena dapat dikembalikan dari panggilan API. Jika Anda ingin tahu lebih banyak tentang CSV Modul Python Silakan berkonsultasi dengan dokumentasi resmi.

Tutorial Linux Terkait:

  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Menguasai loop skrip bash
  • Loop bersarang dalam skrip bash
  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Cara memanipulasi spreadsheet excel dengan ular piton dan…
  • Cara memformat data dengan kolom di linux
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?
  • Manipulasi data besar untuk kesenangan dan keuntungan bagian 1
  • Manipulasi data besar untuk kesenangan dan keuntungan bagian 2
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux