Dal corso: Corso essenziale su Python
CSV
- [Docente] È ora di dare un'occhiata al modulo CSV e a Python. Non c'è bisogno di installare nulla. Viene fornito con Python. Basta importare CSV in alto. Ed ecco fatto. Ho incluso un file CSV con cui lavoreremo e questo è 10_02_us.csv. E questo è derivato da un set di dati di geonames.org che fornisce milioni di nomi di luoghi in set di dati geografici che si estendono in tutto il mondo. E questo particolare set di dati contiene tutti i codici postali negli Stati Uniti insieme alle informazioni sulla città o il paese che rappresenta e quindi la latitudine e la longitudine della sua posizione. Apriremo questo file per la lettura con 10_02_us.csv aperto. Aprilo in modalità lettura, ovviamente. E poi prenderemo quell'oggetto file e lo passeremo a un nuovo csv.reader. Va bene, ora, questo oggetto lettore non è una lista. Se guardi il tipo, in realtà è una classe di lettura CSV ma possiamo usarla come se usassi un elenco ed è un iterabile. Quindi possiamo fare per riga nel lettore stampare riga, e il gioco è fatto. Tutte le righe vengono stampate. Ora notate qualcosa di divertente in questo, non l'ho analizzato correttamente, e questo perché questo non è il tradizionale valore delimitato da virgole e separato da virgole che siete abituati a vedere. Il file CSV contiene in realtà valori separati da tabulazioni. Quindi tutte queste sono schede. Quindi possiamo correggere questo output prendendo la barra T e passandola come argomento delimitatore, backslash T proprio lì. E poi vedi che tutti quei valori vengono divisi e, per impostazione predefinita, questo analizzerà correttamente i valori separati da virgole. Ma se hai qualcosa di diverso da una virgola, devi inserire quel delimitatore in modo specifico. Puoi anche vedere che la prima riga che viene stampata qui è l'intestazione. E se vuoi saltare l'intestazione, il lettore CSV ha anche una funzione ordinata che puoi utilizzare chiamata next. Quindi tutto quello che dobbiamo fare è chiamare il prossimo lettore, e poi quell'intestazione viene saltata. Quindi il nostro lettore ha in realtà una sorta di segnalibro interno che tiene traccia di dove ti trovi. Quindi puoi chiamare il successivo più volte e salterà quella riga per te. Naturalmente, puoi anche semplicemente convertirlo in un elenco. Quindi, se diciamo lettore CSV di elenchi, non dobbiamo chiamare il prossimo, possiamo semplicemente usare la sintassi di suddivisione dell'elenco in questo modo e anche questo salterà l'intestazione. Il modulo CSV ha sicuramente un concetto di intestazioni, quindi se si desidera utilizzare i dati dell'intestazione si potrebbe prendere in considerazione il lettore dict. Quindi csv. DictReader, manterremo lo stesso delimitatore. Bene, quindi nota che questa intestazione non viene stampata come una riga di dati, ma viene effettivamente utilizzata come chiavi in ogni dizionario in questo elenco. E questo elenco di dizionari può essere un formato di dati davvero utile con cui lavorare in Python. Quindi convertiamo questo da un oggetto lettore a un oggetto elenco. Chiamiamoli semplicemente dati. Ok, ora abbiamo alcuni dati con cui possiamo lavorare. Ora sono alla ricerca di alcuni immobili di prima qualità. E quindi sono davvero interessato a trovare codici postali che siano divisibili solo per uno in sé. Sai, primo. Quindi ho preso in prestito del codice che abbiamo scritto in precedenza e quello che fa è che ottiene tutti i numeri primi tra 2 e 99.999. Ricorda, i codici postali possono iniziare con 0. Quindi, se un codice postale è, ad esempio, 02155, la mia città natale di Medford, Massachusetts, ciò equivarrebbe a 2.155 che è divisibile per cinque e quindi non primo. Quindi filtriamoli solo per le posizioni principali. Quindi i dati sono uguali riga per riga nei dati se int data codice postale in numeri primi. Inoltre, non voglio acquistare nulla fuori dallo stato, quindi limiterò la mia ricerca al Massachusetts e il codice dello stato della riga è uguale a MA. E stampiamo la lunghezza dei dati. Ops, row, ci siamo. 91, quindi sembra che abbiamo trovato 91 codici postali principali in Massachusetts e voglio scrivere tutto questo in un file CSV da inviare al mio agente immobiliare. Sai, gli agenti immobiliari adorano i file CSV. Quindi, con open 10_02, chiamiamolo ma_prime.csv apriremo questo per scrivere, questo F. Ok. E poi creeremo un nuovo scrittore CSV, un scrittore di punti CSV, e poi passeremo questo nome di file per la riga nei dati. Quindi i nostri dati da qui, writer.writerow. Ora dobbiamo passare la riga come un elenco, in modo da poter decidere quali valori vogliamo qui. Di cosa ha bisogno il mio agente immobiliare? Forse il nome di un luogo e di una contea. Quindi potremmo creare di nuovo le tabulazioni dei delimitatori passando un argomento della parola chiave del delimitatore all'autore qui. Ma per impostazione predefinita, verrà utilizzata una virgola, che è quella che preferirei comunque. Quindi usiamolo. Ok, ora andiamo qui e vediamo cosa abbiamo. Hmm, ecco qua. Guardate tutto questo immobile di prim'ordine. Barnstable. Quanti edifici agricoli riesci a inserire nel nome della città?
Fai pratica con gli esercizi mentre impari la teoria
Scarica i documenti che l’istruttore utilizza per tenere i corsi. Segui e impara guardando, ascoltando ed esercitandoti.