Cara Membaca dan Membuat File CSV Menggunakan Python
- 2182
- 226
- Simon Cormier
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
Persyaratan dan konvensi perangkat lunak yang digunakan
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
- « Bash Idiom Variabel Lanjutan untuk Manajemen Sensitivitas Kasus
- Cara Menghasilkan dan Mengelola Kunci SSH di Linux »