Dari kursus: Pelatihan Esensial Python
CSV
- [Dosen] Saatnya melihat modul CSV dan Python. Tidak perlu menginstal apa pun. Muncul dengan Python. Cukup impor CSV di bagian atas. Dan begitulah. Saya telah menyertakan file CSV yang akan kita kerjakan dan ini 10_02_us.csv. Dan ini berasal dari kumpulan data dari geonames.org yang menyediakan jutaan nama tempat dalam kumpulan data geografis yang tersebar di seluruh dunia. Dan kumpulan data khusus ini berisi setiap kode pos di AS bersama dengan informasi tentang kota atau kota yang diwakilinya dan kemudian garis lintang dan bujur lokasinya. Kita akan membuka file ini untuk dibaca dengan 10_02_us.csv terbuka. Buka dalam mode baca, jelas. Dan kemudian kita akan mengambil objek file itu dan meneruskannya ke csv.reader baru. Baiklah, sekarang, objek pembaca ini bukan daftar. Jika Anda melihat jenisnya, itu sebenarnya adalah kelas pembaca CSV tetapi kita dapat menggunakannya seperti Anda menggunakan daftar dan itu adalah iterable. Jadi kita bisa melakukan untuk baris di baris cetak pembaca, dan begitulah. Anda mendapatkan semua baris yang dicetak. Sekarang perhatikan sesuatu yang lucu tentang ini, tidak cukup menguraikannya dengan benar, dan itu karena ini bukan nilai tradisional yang dibatasi koma dan dipisahkan koma yang biasa Anda lihat. File CSV sebenarnya berisi nilai yang dipisahkan tab. Jadi semua ini adalah tab. Jadi kita dapat memperbaiki output ini dengan mengambil garis miring spac T dan meneruskannya sebagai argumen pembatas, garis miring terbalik T di sana. Dan kemudian Anda melihat bahwa semua nilai itu dipisahkan, dan secara default ini akan mengurai nilai yang dipisahkan koma dengan benar. Tetapi jika Anda memiliki sesuatu selain koma, Anda perlu memasukkan pembatas itu secara khusus. Anda juga dapat melihat bahwa baris pertama yang dicetak di sini adalah header. Dan jika Anda ingin melewati header, pembaca CSV juga memiliki fungsi rapi yang dapat Anda gunakan yang disebut next. Jadi yang harus kita lakukan adalah memanggil pembaca berikutnya, dan kemudian header itu dilewati. Jadi pembaca kami sebenarnya memiliki semacam bookmark internal yang melacak di mana Anda berada. Jadi Anda dapat menelepon berikutnya beberapa kali dan itu akan melewati baris itu untuk Anda. Tentu saja, Anda juga bisa mengubahnya menjadi daftar. Jadi jika kita mengatakan pembaca CSV daftar, kita tidak perlu memanggil next, kita bisa menggunakan sintaks pemotongan daftar seperti itu dan itu juga akan melewati header. Modul CSV pasti memiliki konsep header, jadi jika Anda ingin menggunakan data header itu, Anda dapat mempertimbangkan pembaca dict. Jadi csv. DictReader, kita akan mempertahankan pembatas yang sama. Baiklah, jadi perhatikan bahwa header ini tidak dicetak sebagai baris data, tetapi sebenarnya digunakan sebagai kunci di setiap kamus dalam daftar ini. Dan daftar kamus ini bisa menjadi format data yang sangat berguna untuk digunakan di Python. Jadi mari kita ubah ini dari objek pembaca menjadi objek daftar. Sebut saja data. Oke, jadi sekarang kita memiliki beberapa data yang dapat kita kerjakan. Sekarang saya berada di pasar untuk beberapa real estat utama. Jadi saya sangat tertarik untuk menemukan kode pos yang hanya dapat dibagi dengan satu dengan sendirinya. Anda tahu, prime. Jadi saya meminjam beberapa kode yang kami tulis sebelumnya dan apa yang dilakukan ini adalah hanya mendapatkan semua bilangan prima antara 2 dan 99.999. Ingat, kode pos dapat dimulai dengan 0. Jadi jika kode pos katakanlah 02155, kampung halaman saya di Medford, Massachusetts, itu akan setara dengan 2.155 yang habis dibagi lima dan karena itu bukan bilangan prima. Jadi mari kita filter ini hanya ke lokasi utama. Jadi data sama dengan baris demi baris dalam data jika int data kode pos dalam bilangan prima. Saya juga tidak ingin membeli apa pun di luar negara bagian jadi saya akan membatasi pencarian saya ke Massachusetts dan kode negara bagian baris sama dengan MA. Dan mari kita cetak panjang data. Wah, baris, itu dia. 91, jadi sepertinya kami menemukan 91 kode pos utama di Massachusetts dan saya ingin menulis semua ini kembali ke file CSV untuk dikirim ke agen real estat saya. Anda tahu, agen real estat menyukai file CSV. Jadi dengan open 10_02, sebut saja ma_prime.csv kita akan membuka ini untuk ditulis, F ini. Oke. Dan kemudian kita akan membuat penulis CSV baru, CSV dot writer, dan kemudian meneruskan nama file ini untuk baris dalam data. Jadi data kami dari atas sini, writer.writerow. Sekarang kita harus meneruskan baris sebagai daftar, jadi kita bisa memutuskan nilai mana yang kita inginkan di sini. Apa yang dibutuhkan agen real estat saya? Mungkin nama tempat dan kabupaten. Jadi kita bisa membuat tab pembatas lagi dengan meneruskan argumen kata kunci pembatas ke penulis di sini. Tetapi secara default, koma akan digunakan, yang lebih saya sukai. Jadi mari kita gunakan saja. Oke, sekarang mari kita pergi ke sini dan melihat apa yang kita dapatkan. Hmm, begitulah. Lihatlah semua real estat utama ini. Barnstable. Berapa banyak bangunan pertanian yang bisa Anda masukkan ke dalam nama kota?
Berlatih sambil belajar dengan file latihan
Unduh file yang digunakan instruktur untuk mengajarkan kursus. Simak dan pelajari dengan melihat, mendengarkan, dan berlatih.