Apakah fail CSV?
Fail CSV adalah jenis file teks biasa yang menggunakan penstrukturan khusus untuk mengatur data tabel. CSV adalah format biasa untuk pertukaran data kerana ringkas, ringkas dan umum. Banyak perkhidmatan dalam talian membolehkan penggunanya mengeksport data jadual dari laman web ke dalam fail CSV. Fail CSV akan dibuka ke Excel, dan hampir semua pangkalan data mempunyai alat untuk membenarkan pengimportan dari fail CSV. Format standard ditentukan oleh data baris dan lajur. Lebih-lebih lagi, setiap baris ditamatkan oleh baris baru untuk memulakan baris berikutnya. Juga dalam baris, setiap lajur dipisahkan dengan koma.
Dalam tutorial ini, anda akan belajar:
- Apakah fail CSV?
- Fail Contoh CSV.
- Modul Python CSV
- Fungsi Modul CSV
- Membaca Fail CSV
- Membaca sebagai Kamus
- Menulis ke Fail CSV
- Membaca Fail CSV dengan Pandas
- Menulis ke Fail CSV dengan Pandas
Fail Contoh CSV.
Data dalam bentuk jadual juga disebut CSV (nilai dipisahkan koma) - secara harfiah "nilai dipisahkan koma." Ini adalah format teks yang dimaksudkan untuk penyampaian data tabular. Setiap baris fail adalah satu baris jadual. Nilai lajur individu dipisahkan oleh simbol pemisah - koma (,), titik koma (;) atau simbol lain. CSV dapat dibaca dan diproses dengan mudah oleh Python.
Pertimbangkan Jadual berikut
Data Jadual
Bahasa pengaturcaraan | Direka oleh | Muncul | Sambungan |
Python | Guido van Rossum | 1991 | .py |
Jawa | James Gosling | 1995 | .java |
C ++ | Bjarne Stroustrup | 1983 | .cpp |
Anda boleh mewakili jadual ini dalam csv seperti di bawah.
Data CSV
Bahasa pengaturcaraan, Direka oleh, Muncul, Perluasan
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C ++, Bjarne Stroustrup, 1983, .cpp
Seperti yang anda lihat setiap baris adalah baris baru, dan setiap lajur dipisahkan dengan koma. Ini adalah contoh bagaimana rupa fail CSV.
Muat turun Data CSV
Modul Python CSV
Python menyediakan modul CSV untuk mengendalikan fail CSV. Untuk membaca / menulis data, anda perlu mencari baris CSV. Anda perlu menggunakan kaedah split untuk mendapatkan data dari lajur yang ditentukan.
Fungsi Modul CSV
Dalam dokumentasi modul CSV, anda dapat menemui fungsi berikut:
- csv.field_size_limit - mengembalikan ukuran medan maksimum
- csv.get_dialect - dapatkan dialek yang dikaitkan dengan namanya
- csv.list_dialects - tunjukkan semua dialek berdaftar
- csv.reader - membaca data dari fail csv
- csv.register_dialect - kaitkan dialek dengan nama
- csv.writer - menulis data ke fail csv
- csv.unregister_dialect - hapus dialek yang berkaitan dengan nama pendaftaran dialek
- csv.QUOTE_ALL - Kutip semuanya, tanpa mengira jenisnya.
- csv.QUOTE_MINIMAL - Bidang petikan dengan watak khas
- csv.QUOTE_NONNUMERIC - Kutip semua bidang yang bukan nilai nombor
- csv.QUOTE_NONE - Jangan mengutip apa-apa dalam output
Dalam tutorial ini, kita hanya akan memfokuskan pada fungsi pembaca dan penulis yang membolehkan anda mengedit, mengubah, dan memanipulasi data dalam fail CSV.
Cara Membaca Fail CSV
Untuk membaca data dari fail CSV, anda mesti menggunakan fungsi pembaca untuk menghasilkan objek pembaca.
Fungsi pembaca dikembangkan untuk mengambil setiap baris fail dan membuat senarai semua lajur. Kemudian, anda harus memilih lajur yang anda inginkan untuk data pemboleh ubah.
Kedengarannya jauh lebih rumit daripada itu. Mari kita lihat contoh ini, dan kita akan mengetahui bahawa bekerja dengan fail csv tidak begitu sukar.
#import necessary modulesimport csvwith open('X:\data.csv','rt')as f:data = csv.reader(f)for row in data:print(row)
Apabila anda menjalankan program di atas, outputnya adalah:
['Programming language; Designed by; Appeared; Extension']['Python; Guido van Rossum; 1991; .py']['Java; James Gosling; 1995; .java']['C++; Bjarne Stroustrup;1983;.cpp']
Cara Membaca CSV sebagai Kamus
Anda juga boleh menggunakan DictReader untuk membaca fail CSV. Hasilnya ditafsirkan sebagai kamus di mana baris tajuk adalah kuncinya, dan baris lain adalah nilai.
Pertimbangkan kod berikut
#import necessary modulesimport csvreader = csv.DictReader(open("file2.csv"))for raw in reader:print(raw)
Hasil kod ini adalah:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
Cara ini untuk membaca data dari fail CSV jauh lebih mudah daripada kaedah sebelumnya. Namun, ini bukan kaedah terbaik untuk membaca data.
Cara menulis Fail CSV
Apabila anda mempunyai sekumpulan data yang ingin anda simpan dalam fail CSV, anda harus menggunakan fungsi penulis (). Untuk mengulang data di atas baris (baris), anda harus menggunakan fungsi penulis ().
Pertimbangkan contoh berikut. Kami menulis data ke dalam fail "writeData.csv" di mana pembatasnya adalah apostrof.
#import necessary modulesimport csvwith open('X:\writeData.csv', mode='w') as file:writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)#way to write to csv filewriter.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])writer.writerow(['Java', 'James Gosling', '1995', '.java'])writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Hasil dalam fail csv adalah:
Programming language, Designed by, Appeared, ExtensionPython, Guido van Rossum, 1991, .pyJava, James Gosling, 1995, .javaC++, Bjarne Stroustrup,1983,.cpp
Membaca Fail CSV dengan Pandas
Pandas adalah pustaka sumber terbuka yang membolehkan anda melakukan manipulasi data di Python. Panda menyediakan cara mudah untuk membuat, memanipulasi dan menghapus data.
Anda mesti memasang pustaka pandas dengan perintah pip install panda
. Di tingkap, anda akan melaksanakan perintah ini di Command Prompt semasa berada di Linux di Terminal.
Membaca CSV menjadi DataFrame panda sangat cepat dan mudah:
#import necessary modulesimport pandasresult = pandas.read_csv('X:\data.csv')print(result)
Keputusan:
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Perpustakaan yang sangat berguna. Hanya dengan tiga baris kod, hasil yang sama seperti sebelumnya. Pandas tahu bahawa baris pertama CSV mengandungi nama lajur, dan ia akan menggunakannya secara automatik.
Menulis ke Fail CSV dengan Pandas
Menulis ke fail CSV dengan Pandas semudah membaca. Di sini anda boleh yakin di dalamnya. Mula-mula anda mesti membuat DataFrame berdasarkan kod berikut.
from pandas import DataFrameC = {'Programming language': ['Python','Java', 'C++'],'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],'Appeared': ['1991', '1995', '1985'],'Extension': ['.py', '.java', '.cpp'],}df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be storedprint (df)
Inilah keluarannya
Programming language, Designed by, Appeared, Extension0 Python, Guido van Rossum, 1991, .py1 Java, James Gosling, 1995, .java2 C++, Bjarne Stroustrup,1983,.cpp
Dan fail CSV dibuat di lokasi yang ditentukan.
Kesimpulannya
Jadi, sekarang anda tahu bagaimana kaedah penggunaan 'csv' dan juga membaca dan menulis data dalam format CSV. Fail CSV banyak digunakan dalam aplikasi perisian kerana mudah dibaca dan dikendalikan, dan ukurannya yang kecil menjadikannya agak cepat untuk diproses dan dihantar.
Modul csv menyediakan pelbagai fungsi dan kelas yang membolehkan anda membaca dan menulis dengan mudah. Anda boleh melihat dokumentasi Python rasmi dan mendapatkan beberapa petua dan modul yang lebih menarik. CSV adalah kaedah terbaik untuk menyimpan, melihat, dan mengirim data. Sebenarnya, tidak begitu sukar untuk dipelajari seperti yang kelihatan pada awalnya. Tetapi dengan sedikit latihan, anda akan menguasainya.
Pandas adalah alternatif yang bagus untuk membaca fail CSV.
Juga, ada cara lain untuk menguraikan fail teks dengan perpustakaan seperti ANTLR, PLY, dan PlyPlus. Mereka semua dapat menangani penghuraian tugas berat, dan jika manipulasi String sederhana tidak berjaya, ada ungkapan biasa yang boleh anda gunakan.