Come scrivere un elenco in CSV in Python

Come scrivere un elenco in CSV in Python

Se hai lottato con gli elenchi Python e ti sei chiesto come salvarli come un file CSV pulito, sei nel posto giusto. Una delle attività più comuni in Python è scrivere un elenco in un file delimitato da virgole e oggi ti trasformeremo in un professionista dell'evocazione di file CSV!

Per scrivere un elenco in CSV in Python, puoi utilizzare un modulo integrato chiamato csv progettato appositamente per leggere e scrivere file CSV. La classe csv.writer del modulo fornisce funzioni per la scrittura di elenchi semplici e nidificati in file CSV.

Altri metodi per ottenere lo stesso risultato includono l'installazione e l'utilizzo dei moduli Panda o NumPy esterni.

Questo articolo spiegherà i concetti e ti guiderà passo dopo passo attraverso il processo con tutti gli esempi di codice necessari per iniziare.

Andiamo!

Sommario

Cosa sono le liste in Python?

Come scrivere un elenco in CSV in Python

Un elenco in Python è una struttura dati incorporata che viene utilizzata per memorizzare più elementi in una singola variabile.

Gli elenchi di Python sono:

  • ordinato (a partire da zero).

  • mutabile (può essere modificato).

  • in grado di memorizzare valori duplicati.

Gli elenchi sono definiti avendo valori tra parentesi quadre [] e gli elementi sono separati da virgole. Gli elementi in un elenco possono essere di qualsiasi tipo di dati, ad esempio numeri, stringhe e persino altri elenchi.

Ecco un esempio di creazione di un semplice elenco:

products = [“t-shirts”, “hoodies”, “jeans”]

Elenchi di elenchi in Python

Gli elenchi di elenchi sono noti anche come elenchi nidificati . Si tratta di liste che contengono altre liste come propri elementi.

Sono spesso usati in Python per rappresentare dati strutturati in righe e colonne. Sono comunemente usati in scenari in cui è necessario raggruppare dati correlati.

Di seguito è riportato un esempio di creazione di un elenco nidificato che rappresenta prodotti, prezzi e vendite.

product_sales = [[“t-shirts”, 9.99, 342], [“hoodies”, 24.99, 118], [“jeans”, 29.99, 612]

File CSV e il modulo CSV in Python

I file CSV rappresentano i dati tabulari in un semplice formato di file. Ogni riga del file corrisponde a una riga della tabella. Ogni valore nella riga (o riga) è separato da una virgola: ecco perché il formato è denominato "Valori separati da virgola".

Ecco come potrebbe apparire un file che rappresenta prodotti, prezzi e vendite in formato CSV:

  • magliette, 9,99, 342

  • felpe con cappuccio, 24,99, 118

  • jeans, 29,99, 612

Come scrivere un elenco in CSV in Python

Il modulo csv è un modulo Python integrato che fornisce strumenti per leggere e scrivere dati in formato CSV. È particolarmente utile per la sua semplicità ed efficienza.

Importando il modulo csv , si ottiene l'accesso alla classe csv.writer() , che consente di creare un oggetto writer in grado di scrivere una stringa delimitata su un oggetto file.

Bene, ora che abbiamo esaminato le basi, diamo un'occhiata a come puoi scrivere un semplice elenco in CSV usando Python nella prossima sezione.

Come scrivere un semplice elenco in CSV in Python

La prima tecnica da imparare è per un semplice file di elenco (non nidificato) che assomiglia a questo:

  • magliette

  • felpe con cappuccio

  • jeans

Come scrivere un elenco in CSV in Python

I passaggi generali per scrivere l'elenco in un file CSV sono:

  1. Importa il modulo csv .

  2. Crea un elenco Python.

  3. Apri un file CSV in modalità di scrittura.

  4. Utilizzare la funzione writerow() dell'oggetto writer csv .

  5. Salva e chiudi il file CSV.

La funzione writerow() scriverà più righe, cioè tutti i dati nel file. Ecco il codice con commenti dettagliati.

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a Python list
my_list = ["t-shirts", "hoodies", "jeans"]

# Step 3: Opening a CSV file in write mode

with open('products.csv', 'w', newline='') as file:
    # Step 4: Using csv.writer to write the list to the CSV file
    writer = csv.writer(file)
    writer.writerow(my_list) # Use writerow for single list

# Step 5: The file is automatically closed when exiting the 'with' block

Utilizzo dei gestori di contesto

Se non hai familiarità con il metodo "con" per lavorare con i file, questa è una tecnica che utilizza un gestore di contesto che gestisce le risorse dei file.

Ad esempio, quando lo usi per scrivere file CSV, i file vengono chiusi automaticamente al termine dell'istruzione with.

Come scrivere un elenco di elenchi in CSV

Con un elenco di elenchi, ogni elenco interno dovrebbe essere una riga CSV nel file. Ecco come appariranno i dati CSV:

Come scrivere un elenco in CSV in Python

I passaggi generali sono simili alla sezione precedente, tranne per il fatto che utilizzi la funzione writerows() invece di writerow() .

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a Python list of lists
my_list = [["t-shirts", 9.99, 342], ["hoodies", 24.99, 118], ["jeans", 29.99, 612]]

# Step 3: Opening a CSV file in write mode
with open('product_sales.csv', 'w', newline='') as file:
    # Step 4: Using csv.writer to write the list to the CSV file
    writer = csv.writer(file)
    writer.writerows(my_list) # Use writerows for nested list

# Step 5: The file is automatically closed when exiting the 'with' bloc

In questo secondo esempio, ogni elenco interno viene scritto come una riga separata nel file.

Nota che il modulo csv ti consente di evitare di dover enumerare o scorrere la struttura dei dati e scriverla riga per riga.

Successivamente, vedremo come è possibile aggiungere dati ai file CSV esistenti.

Come aggiungere dati a file CSV esistenti

Come scrivere un elenco in CSV in Python

Per aggiungere dati a un file CSV esistente, procedi nel seguente modo:

  1. Importa il modulo csv .

  2. Aprire il file CSV in modalità accodamento ("a") utilizzando il gestore di contesto with open() .

  3. Crea un nuovo elenco contenente i dati da aggiungere.

  4. Crea un oggetto csv.writer() passando il file aperto.

  5. Utilizzare l' oggetto csv.writer() per scrivere il nuovo elenco nel file CSV.

Ecco un esempio che scrive aggiunge un elenco nidificato (una riga) a un file esistente:

import csv

new_row = [["leggings", 22.99, 483]]

with open('product_sales.csv', 'a', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(new_row)

Assicurati di includere newline=" quando apri il file per garantire la corretta formattazione del file CSV su piattaforme diverse.

Nella sezione successiva, tratteremo come utilizzare la classe DictWriter per scrivere su file CSV.

Come utilizzare DictWriter per scrivere su file CSV

Come scrivere un elenco in CSV in Python

Finora abbiamo imparato come scrivere elenchi in file CSV. Tuttavia, Python ha altre strutture di dati come dizionari che possono anche essere scritti in un file CSV.

Anche la classe DictWriter() fa parte del modulo csv . È simile alla classe writer() ma gestisce i dati del dizionario.

Ecco un esempio:

import csv

product_sales_dict = [
    {"product": "t-shirts", "price": 9.99, "sales": 342},
    {"product": "hoodies", "price": 24.99, "sales": 118},
    {"product": "jeans", "price": 29.99, "sales": 612}
]

fieldnames = ["product", "price", "sales"]

with open("dictionary.csv", "w", newline="") as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerows(product_sales_dict)

Tecniche CSV avanzate in Python

L'utilizzo del modulo csv non è l'unico metodo per esportare elenchi Python come file CSV.

Due librerie popolari che forniscono funzionalità per questa attività sono Pandas e NumPy .

1. Come esportare dati con Panda

Come scrivere un elenco in CSV in Python

Pandas è una libreria Python ampiamente utilizzata per la manipolazione e l'analisi dei dati.

Per salvare gli elenchi Python come file CSV, puoi creare un DataFrame pandas dall'elenco e quindi utilizzare il metodo to_csv() , come mostrato di seguito:

import pandas as pd
# Example list of lists
data = [['ABC', 1.2, 30], ['XYZ', 0.8, 20], ['LMN', 2.3, 50]]
# Create a DataFrame from the list
data_frame = pd.DataFrame(data, columns=['Name', 'Value', 'Quantity'])
# Save DataFrame to CSV file
data_frame.to_csv('output.csv', index=False, encoding='utf-8')

Se i dati includono caratteri non ASCII, potrebbe essere necessario impostare il parametro di codifica su un valore appropriato, ad esempio "utf-8".

2. Come utilizzare NumPy per salvare elenchi in CSV

Un'altra libreria che vale la pena considerare è NumPy che fornisce supporto per lavorare con array e matrici.

NumPy offre la funzione np.savetxt() come metodo conveniente per salvare i dati in un file CSV.

Ecco un esempio che mostra come salvare un elenco in un file CSV utilizzando NumPy:

import numpy as np
# Example list of lists
data = [['ABC', 1.2, 30], ['XYZ', 0.8, 20], ['LMN', 2.3, 50]]
# Save the list to a CSV file
np.savetxt('output.csv', data, delimiter=',', fmt='%s', header='Name,Value,Quantity', comments='')

Ecco una ripartizione dei parametri savetxt() :

  • delimitatore: specifica il separatore di campo

  • Parametro fmt: indica il formato dei dati in corso di salvataggio

  • %s: il segnaposto per i valori stringa

  • header : un elenco di intestazioni di colonna

  • commenti: controlla i caratteri che iniziano i commenti nel file di output.

Come pulire i dati prima di scriverli su file

È una buona idea ripulire i dati prima di scriverli in file di testo. Questo video ti fornirà le tecniche di cui hai bisogno:

Pensieri finali

Scrivere un elenco in un file CSV in Python è un modo semplice ed efficace per archiviare e condividere dati. Hai imparato come utilizzare il modulo csv integrato di Python per eseguire questa attività.

Ora hai familiarità con la creazione di un elenco Python, l'importazione del modulo csv , l'apertura di un file CSV e l'utilizzo di csv.writer per scrivere l'elenco nel file CSV.

Hai anche appreso gli scenari più complessi della scrittura di un elenco di elenchi in un file CSV, che ti consente di archiviare dati tabulari.

Non dimenticare, come tutte le cose nella programmazione, la pratica rende perfetti. Quindi, prendi questa nuova conoscenza, giocaci e guarda come funziona con diversi set di dati ed esigenze di progetto.

Questa è solo la punta dell'iceberg di Python. C'è molto altro da esplorare nel vasto mondo di Python, quindi non fermarti qui. Ma per oggi, datti una pacca sulla spalla. Hai domato con successo la bestia della conversione da elenco a CSV!


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere