Hur man skriver en lista till CSV i Python

Om du har brottats med Python-listor och undrat hur du kan spara dem som en snygg CSV-fil, är du på rätt plats. En av de vanligaste uppgifterna i Python är att skriva en lista till en kommaavgränsad fil, och idag ska vi förvandla dig till ett proffs för att framkalla CSV-filer!

För att skriva en lista till CSV i Python kan du använda en inbyggd modul som heter csv som är speciellt utformad för att läsa och skriva CSV-filer. Modulens csv.writer-klass tillhandahåller funktioner för att skriva enkla och kapslade listor till CSV-filer.

Andra metoder för att få samma resultat inkluderar att installera och använda de externa Pandas- eller NumPy-modulerna.

Den här artikeln kommer att förklara koncepten och leda dig steg-för-steg genom processen med alla kodexempel du behöver för att komma igång.

Nu går vi!

Innehållsförteckning

Vad är listor i Python?

Hur man skriver en lista till CSV i Python

En lista i Python är en inbyggd datastruktur som används för att lagra flera objekt i en enda variabel.

Python-listor är:

  • beställd (med början från noll).

  • föränderlig (kan modifieras).

  • kan lagra dubbletter av värden.

Listor definieras genom att ha värden mellan hakparenteser [] och objekt separeras med kommatecken. Objekten i en lista kan vara av vilken datatyp som helst, som siffror, strängar och till och med andra listor.

Här är ett exempel på hur du skapar en enkel lista:

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

Listor över listor i Python

Listor med listor kallas även kapslade listor . Det här är listor som innehåller andra listor som sina element.

De används ofta i Python för att representera strukturerad data i rader och kolumner. De används ofta i scenarier där du behöver gruppera relaterade data tillsammans.

Här är ett exempel på hur du skapar en kapslad lista som representerar produkter, priser och försäljning.

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

CSV-filer och CSV-modulen i Python

CSV-filer representerar tabelldata i ett enkelt filformat. Varje rad i filen motsvarar en rad i tabellen. Varje värde i raden (eller raden) separeras med ett kommatecken - det är därför formatet kallas "Kommaseparerade värden".

Så här kan en fil som representerar produkter, priser och försäljning se ut i CSV-format:

  • t-shirts, 9,99, 342

  • huvtröjor, 24,99, 118

  • jeans, 29,99, 612

Hur man skriver en lista till CSV i Python

Csv - modulen är en inbyggd Python-modul som tillhandahåller verktyg för att läsa och skriva data i CSV-format. Det är särskilt användbart på grund av dess enkelhet och effektivitet.

Genom att importera csv -modulen får du tillgång till klassen csv.writer() som låter dig skapa ett writer-objekt som kan skriva en avgränsad sträng till ett filobjekt.

Okej, nu när vi har gått igenom grunderna, låt oss ta en titt på hur du kan skriva en enkel lista till CSV med Python i nästa avsnitt.

Hur man skriver en enkel lista till CSV i Python

Den första tekniken att lära sig är för en enkel (icke-kapslad) listfil som ser ut så här:

  • t-shirts

  • hoodies

  • jeans

Hur man skriver en lista till CSV i Python

De allmänna stegen för att skriva listan till CSV-fil är:

  1. Importera csv- modulen.

  2. Skapa en Python-lista.

  3. Öppna en CSV-fil i skrivläge.

  4. Använd funktionen writerow() för csv-skrivarobjektet .

  5. Spara och stäng CSV-filen.

Writerow ()- funktionen kommer att skriva flera rader, dvs all data till filen. Här är koden med detaljerade 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

Använda kontexthanterare

Om du inte är bekant med metoden "med" att arbeta med filer, är detta en teknik som använder en kontexthanterare som hanterar filresurserna.

Till exempel, när du använder den för att skriva CSV-filer, stängs filerna automatiskt när with-satsen slutar.

Hur man skriver en lista med listor till CSV

Med en lista med listor bör varje inre lista vara en CSV-rad i filen. Så här kommer CSV-data att se ut:

Hur man skriver en lista till CSV i Python

De breda stegen liknar föregående avsnitt förutom att du använder funktionen writerows() istället för 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 detta andra exempel skrivs varje inre lista som en separat rad i filen.

Observera att csv -modulen låter dig undvika att behöva eller genom datastrukturen och skriva den rad för rad.

Därefter ska vi titta på hur du kan lägga till data till befintliga CSV-filer.

Hur man lägger till data till befintliga CSV-filer

Hur man skriver en lista till CSV i Python

Följ dessa steg för att lägga till data till en befintlig CSV-fil:

  1. Importera csv- modulen.

  2. Öppna CSV-filen i tilläggsläge ('a') med hjälp av med open()- kontexthanteraren.

  3. Skapa en ny lista med data som ska läggas till.

  4. Skapa ett csv.writer() -objekt genom att skicka den öppnade filen.

  5. Använd objektet csv.writer() för att skriva den nya listan till CSV-filen.

Här är ett exempel som skriver lägger till en kapslad lista (en rad) till en befintlig 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)

Se till att inkludera newline=” när du öppnar filen för att säkerställa korrekt formatering av CSV-filen på olika plattformar.

I nästa avsnitt kommer vi att täcka hur du kan använda klassen DictWriter för att skriva till CSV-filer.

Hur man använder DictWriter för att skriva till CSV-filer

Hur man skriver en lista till CSV i Python

Hittills har vi lärt oss hur man skriver listor till CSV-filer. Python har dock andra datastrukturer som kan också skrivas till en CSV-fil.

Klassen DictWriter () är också en del av csv -modulen. Den liknar klassen writer() men den hanterar ordboksdata.

Här är ett exempel:

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)

Avancerade CSV-tekniker i Python

Att använda csv- modulen är inte den enda metoden för att exportera Python-listor som CSV-filer.

Två populära bibliotek som tillhandahåller funktionalitet för denna uppgift är Pandas och NumPy .

1. Hur man exporterar data med pandor

Hur man skriver en lista till CSV i Python

Pandas är ett mycket använt Python-bibliotek för datamanipulation och analys.

För att spara Python-listor som en CSV-fil kan du skapa en pandas DataFrame från listan och sedan använda to_csv()- metoden, som visas nedan:

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

Om din data innehåller icke-ASCII-tecken kan du behöva ställa in kodningsparametern till ett lämpligt värde, till exempel "utf-8".

2. Hur man använder NumPy för att spara listor till CSV

Ett annat bibliotek som är värt att överväga är som ger stöd för att arbeta med arrayer och matriser.

NumPy erbjuder funktionen np.savetxt() som en bekväm metod för att spara data till en CSV-fil.

Här är ett exempel som visar hur man sparar en lista till en CSV-fil med 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='')

Här är en uppdelning av savetxt() -parametrarna:

  • avgränsare: anger fältavgränsaren

  • fmt-parameter: indikerar formatet för data som sparas

  • %s: platshållaren för strängvärden

  • header : en lista med kolumnrubriker

  • kommentarer: styr tecknen som börjar kommentarer i utdatafilen.

Hur man rengör data innan man skriver till fil

Det är en bra idé att rensa upp din data innan du skriver den till textfiler. Den här videon ger dig de tekniker du behöver:

Slutgiltiga tankar

Att skriva en lista till en CSV-fil i Python är ett enkelt och effektivt sätt att lagra och dela data. Du har lärt dig hur du använder Pythons inbyggda csv- modul för att utföra denna uppgift.

Du är nu bekant med att skapa en Python-lista, importera csv- modulen, öppna en CSV-fil och använda csv.writer för att skriva listan till CSV-filen.

Du lärde dig också de mer komplexa scenarierna med att skriva en lista med listor till en CSV-fil, som låter dig lagra tabelldata.

Glöm inte, precis som allt inom programmering, övning ger färdighet. Så ta denna nyfunna kunskap, lek med den och se hur den fungerar med olika datamängder och projektbehov.

Detta är bara toppen av Python-isberget. Det finns så mycket mer att utforska i Pythons stora värld, så sluta inte här. Men för idag, ge dig själv en klapp på axeln. Du har framgångsrikt tämjt besten av list-till-CSV-konvertering!


Lös en dataanalysutmaning med LuckyTemplates Accelerator

Lös en dataanalysutmaning med LuckyTemplates Accelerator

Finslipa dina färdigheter i rapportutveckling genom att gå med i en dataanalysutmaning. Acceleratorn kan hjälpa dig att bli en LuckyTemplates superanvändare!

Löpande summor i LuckyTemplates med DAX

Löpande summor i LuckyTemplates med DAX

Lär dig hur du beräknar löpande summor i LuckyTemplates med DAX. Löpande summor låter dig inte fastna i ett individuellt resultat.

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

LuckyTemplates Dax-variabler är konstanta: Vad betyder detta?

Förstå konceptet med variabler i DAX inom LuckyTemplates och konsekvenserna av variabler för hur dina mått beräknas.

LuckyTemplates Slope Chart: En översikt

LuckyTemplates Slope Chart: En översikt

Lär dig mer om den anpassade visual som kallas LuckyTemplates Slope-diagram, som används för att visa ökning/minskning för en enstaka eller flera mätvärden.

LuckyTemplates färgteman för enhetliga visualiseringar

LuckyTemplates färgteman för enhetliga visualiseringar

Upptäck färgteman i LuckyTemplates. Dessa är viktiga för att dina rapporter och visualiseringar ska se ut och fungera sömlöst.

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Beräkna medelvärde i LuckyTemplates: Isolera veckodags- eller helgresultat med DAX

Att beräkna ett genomsnitt i LuckyTemplates kan göras på många sätt för att ge dig exakt information för dina affärsrapporter.

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

LuckyTemplates Theming | LuckyTemplates Desktop Standard Theming

Låt oss fördjupa oss i Standard LuckyTemplates-teman och granska några av funktionerna som är inbyggda i själva LuckyTemplates Desktop-applikationen.

LuckyTemplates Map Visual: Hur man skapar och lägger till en anpassad legend i LuckyTemplates

LuckyTemplates Map Visual: Hur man skapar och lägger till en anpassad legend i LuckyTemplates

I den här handledningen lär du dig hur du bygger en anpassad förklaring i en LuckyTemplates Map Visual för att visa dina föredragna färger och segmentering.

LuckyTemplates bakgrundsbild för rapporter som använder PPT

LuckyTemplates bakgrundsbild för rapporter som använder PPT

Lär dig hur du ställer in en LuckyTemplates-bakgrundsbild med PowerPoint. Detta är en av mina tekniker för att skapa mina LuckyTemplates-rapporter.

Upphandlingsbeslutsmodell och analys i LuckyTemplates

Upphandlingsbeslutsmodell och analys i LuckyTemplates

I den här handledningen kommer vi att dyka in i en del inköpsanalyser inom en organisation, med hjälp av en interagerande funktion och kraften i datamodellen.