Hvordan skrive en liste til CSV i Python

Hvis du har slitt med Python-lister og lurt på hvordan du kan lagre dem som en pen CSV-fil, er du på rett sted. En av de vanligste oppgavene i Python er å skrive en liste til en kommadelt fil, og i dag skal vi gjøre deg om til en profesjonell CSV-fil!

For å skrive en liste til CSV i Python, kan du bruke en innebygd modul kalt csv som er laget spesielt for lesing og skriving av CSV-filer. Modulens csv.writer-klasse gir funksjoner for å skrive enkle og nestede lister til CSV-filer.

Andre metoder for å få det samme resultatet inkluderer å installere og bruke de eksterne Panda- eller NumPy-modulene.

Denne artikkelen vil forklare konseptene og veilede deg steg-for-steg gjennom prosessen med alle kodeeksemplene du trenger for å komme i gang.

La oss gå!

Innholdsfortegnelse

Hva er lister i Python?

Hvordan skrive en liste til CSV i Python

En liste i Python er en innebygd datastruktur som brukes til å lagre flere elementer i en enkelt variabel.

Python-lister er:

  • bestilt (fra null).

  • mutable (kan endres).

  • i stand til å lagre dupliserte verdier.

Lister er definert ved å ha verdier mellom firkantede parenteser [] og elementer er atskilt med komma. Elementene i en liste kan være av hvilken som helst datatype, for eksempel tall, strenger og til og med andre lister.

Her er et eksempel på hvordan du lager en enkel liste:

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

Lister over lister i Python

Lister over lister er også kjent som nestede lister . Dette er lister som inneholder andre lister som elementer.

De brukes ofte i Python for å representere strukturerte data i rader og kolonner. De brukes ofte i scenarier der du må gruppere relaterte data.

Her er et eksempel på hvordan du oppretter en nestet liste som representerer produkter, priser og salg.

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

CSV-filer og CSV-modulen i Python

CSV-filer representerer tabelldata i et enkelt filformat. Hver linje i filen tilsvarer en rad i tabellen. Hver verdi i raden (eller linjen) er atskilt med et komma – dette er grunnen til at formatet kalles "Kommadelte verdier".

Slik kan en fil som representerer produkter, priser og salg se ut i CSV-format:

  • t-skjorter, 9,99, 342

  • hettegensere, 24,99, 118

  • jeans, 29,99, 612

Hvordan skrive en liste til CSV i Python

Csv - modulen er en innebygd Python-modul som gir verktøy for å lese og skrive data i CSV-format. Det er spesielt nyttig på grunn av dets enkelhet og effektivitet.

Ved å importere csv- modulen får du tilgang til klassen csv.writer() , som lar deg lage et writer-objekt som kan skrive en avgrenset streng til et filobjekt.

Ok, nå som vi har gått gjennom det grunnleggende, la oss ta en titt på hvordan du kan skrive en enkel liste til CSV ved å bruke Python i neste seksjon.

Hvordan skrive en enkel liste til CSV i Python

Den første teknikken å lære er for en enkel (ikke-nestet) listefil som ser slik ut:

  • t-skjorter

  • hettegensere

  • jeans

Hvordan skrive en liste til CSV i Python

De brede trinnene for å skrive listen til CSV-filen er:

  1. Importer csv- modulen.

  2. Lag en Python-liste.

  3. Åpne en CSV-fil i skrivemodus.

  4. Bruk writerow() -funksjonen til csv-skriverobjektet .

  5. Lagre og lukk CSV-filen.

Writerow () -funksjonen vil skrive flere rader, dvs. alle dataene til filen. Her er koden med detaljerte kommentarer.

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a 
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

Bruke kontekstbehandlere

Hvis du ikke er kjent med metoden "med" for å jobbe med filer, er dette en teknikk som bruker en kontekstbehandling som administrerer filressursene.

For eksempel, når du bruker den til å skrive CSV-filer, lukkes filene automatisk når with-setningen avsluttes.

Hvordan skrive en liste over lister til CSV

Med en liste over lister skal hver indre liste være en CSV-rad i filen. Slik ser CSV-dataene ut:

Hvordan skrive en liste til CSV i Python

De brede trinnene ligner på forrige seksjon bortsett fra at du bruker writerows()- funksjonen i stedet for 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

I dette andre eksemplet er hver indre liste skrevet som en egen rad i filen.

Merk at csv- modulen lar deg unngå å måtte eller gjennom datastrukturen og skrive den rad for rad.

Deretter skal vi se på hvordan du kan legge til data til eksisterende CSV-filer.

Slik legger du til data til eksisterende CSV-filer

Hvordan skrive en liste til CSV i Python

Følg disse trinnene for å legge til data til en eksisterende CSV-fil:

  1. Importer csv- modulen.

  2. Åpne CSV-filen i tilleggsmodus ('a') ved å bruke med open() kontekstbehandling.

  3. Opprett en ny liste som inneholder data som skal legges til.

  4. Lag et csv.writer() -objekt ved å sende den åpnede filen.

  5. Bruk csv.writer() -objektet til å skrive den nye listen til CSV-filen.

Her er et eksempel som skriver legger til en nestet liste (én rad) til en eksisterende fil:

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)

Sørg for å inkludere newline=” når du åpner filen for å sikre riktig formatering av CSV-filen på forskjellige plattformer.

I neste avsnitt skal vi dekke hvordan du kan bruke DictWriter -klassen til å skrive til CSV-filer.

Hvordan bruke DictWriter til å skrive til CSV-filer

Hvordan skrive en liste til CSV i Python

Så langt har vi lært hvordan du skriver lister til CSV-filer. Imidlertid har Python andre datastrukturer som kan også skrives til en CSV-fil.

DictWriter () -klassen er også en del av csv- modulen. Den ligner på writer() -klassen, men den håndterer ordbokdata.

Her er et eksempel:

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)

Avanserte CSV-teknikker i Python

Å bruke csv- modulen er ikke den eneste metoden for å eksportere Python-lister som CSV-filer.

To populære biblioteker som tilbyr funksjonalitet for denne oppgaven er Pandas og NumPy .

1. Hvordan eksportere data med pandaer

Hvordan skrive en liste til CSV i Python

Pandas er et mye brukt Python-bibliotek for datamanipulering og -analyse.

For å lagre Python-lister som en CSV-fil, kan du opprette en pandas DataFrame fra listen og deretter bruke to_csv()- metoden, som vist nedenfor:

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')

Hvis dataene dine inkluderer ikke-ASCII-tegn, må du kanskje sette kodingsparameteren til en passende verdi, for eksempel "utf-8".

2. Hvordan bruke NumPy til å lagre lister til CSV

Et annet bibliotek som er verdt å vurdere er som gir støtte for arbeid med matriser og matriser.

NumPy tilbyr funksjonen np.savetxt() som en praktisk metode for å lagre data til en CSV-fil.

Her er et eksempel som viser hvordan du lagrer en liste til en CSV-fil ved hjelp av 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='')

Her er en oversikt over savetxt() -parameterne:

  • skilletegn: spesifiserer feltskilletegn

  • fmt-parameter: indikerer formatet til dataene som lagres

  • %s: plassholderen for strengverdier

  • header : en liste over kolonneoverskrifter

  • kommentarer: kontroller tegnene som starter kommentarer i utdatafilen.

Hvordan rense data før du skriver til fil

Det er en god idé å rydde opp i dataene dine før du skriver dem til tekstfiler. Denne videoen gir deg teknikkene du trenger:

Siste tanker

Å skrive en liste til en CSV-fil i Python er en enkel og effektiv måte å lagre og dele data på. Du har lært hvordan du bruker Pythons innebygde csv- modul for å utføre denne oppgaven.

Du er nå kjent med å lage en Python-liste, importere csv- modulen, åpne en CSV-fil og bruke csv.writeren til å skrive listen til CSV-filen.

Du har også lært de mer komplekse scenariene med å skrive en liste over lister til en CSV-fil, som lar deg lagre tabelldata.

Ikke glem, som alle ting innen programmering, øvelse gjør mester. Så ta denne nyvunne kunnskapen, lek med den og se hvordan den fungerer med ulike datasett og prosjektbehov.

Dette er bare toppen av Python-isfjellet. Det er så mye mer å utforske i Pythons enorme verden, så ikke stopp her. Men for i dag, gi deg selv et klapp på skulderen. Du har temmet beistet av liste-til-CSV-konvertering!


DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

DAX Studio EVALUATE Nøkkelord: Grunnleggende eksempler

Lær å bruke DAX Studio EVALUATE nøkkelordet med grunnleggende eksempler og få en bedre forståelse av hvordan dette kan hjelpe deg med databehandling.

Opprette en datotabell i LuckyTemplates

Opprette en datotabell i LuckyTemplates

Finn ut hvorfor det er viktig å ha en dedikert datotabell i LuckyTemplates, og lær den raskeste og mest effektive måten å gjøre det på.

LuckyTemplates Mobile Reporting Tips og teknikker

LuckyTemplates Mobile Reporting Tips og teknikker

Denne korte opplæringen fremhever LuckyTemplates mobilrapporteringsfunksjon. Jeg skal vise deg hvordan du kan utvikle rapporter effektivt for mobil.

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

Profesjonelle tjenesteanalyserapporter i LuckyTemplates

I denne LuckyTemplates-utstillingen vil vi gå gjennom rapporter som viser profesjonell tjenesteanalyse fra et firma som har flere kontrakter og kundeengasjementer.

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Microsoft Power Platform-oppdateringer | Microsoft Ignite 2021

Gå gjennom de viktigste oppdateringene for Power Apps og Power Automate og deres fordeler og implikasjoner for Microsoft Power Platform.

Vanlige SQL-funksjoner: en oversikt

Vanlige SQL-funksjoner: en oversikt

Oppdag noen vanlige SQL-funksjoner som vi kan bruke som streng, dato og noen avanserte funksjoner for å behandle eller manipulere data.

LuckyTemplates Template Creation: Guide og tips

LuckyTemplates Template Creation: Guide og tips

I denne opplæringen lærer du hvordan du lager din perfekte LuckyTemplates-mal som er konfigurert til dine behov og preferanser.

Feltparametre og små multipler i LuckyTemplates

Feltparametre og små multipler i LuckyTemplates

I denne bloggen vil vi demonstrere hvordan du legger feltparametere sammen med små multipler for å skape utrolig nyttig innsikt og grafikk.

LuckyTemplates-rangering og tilpasset gruppering

LuckyTemplates-rangering og tilpasset gruppering

I denne bloggen vil du lære hvordan du bruker LuckyTemplates rangering og tilpassede grupperingsfunksjoner for å segmentere et eksempeldata og rangere det i henhold til kriterier.

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

Viser kun kumulativ total opp til en bestemt dato i LuckyTemplates

I denne opplæringen skal jeg dekke en spesifikk teknikk rundt hvordan du viser kumulativ total kun opp til en bestemt dato i grafikken i LuckyTemplates.