Hur man läser CSV-fil i Python (Modul, Panda-exempel)

⚡ Smart sammanfattning

En CSV-fil lagrar tabelldata som vanlig text, med kommatecken som separerar kolumner och radbrytningar som separerar rader. Här lär du dig att läsa och skriva CSV-filer i Python med hjälp av den inbyggda csv-modulen och pandas-biblioteket.

  • 📄 Vad det är: En CSV-fil lagrar tabelldata som kommaseparerad vanlig text.
  • ???? csv.läsare: csv.reader() läser rader från en CSV-fil som listor.
  • 📚 DictReader: csv.DictReader() läser varje rad in i en ordnad ordbok.
  • ✍️ csv.writer: csv.writer() och writerow() skriver rader till en CSV-fil.
  • 🐼 Pandor: pandas.read_csv() och to_csv() läser och skriver CSV-filer på en rad.
  • 🤖 AI-hjälp: AI-verktyg som Copilot genererar CSV-kod för läsning och skrivning direkt.

Läs CSV-filen i Python

Vad är en CSV-fil?

A CSV-fil är en enkel typ av vanlig textfil som använder en specifik struktur för att ordna tabelldata. Standardformatet för en CSV-fil definieras av rader och kolumner där en ny rad avslutar varje rad för att börja nästa rad, och varje kolumn är separerad av ett kommatecken inom raden.

CSV är ett vanligt format för datautbyte eftersom det är kompakt, enkelt och generellt. Många onlinetjänster tillåter sina användare att exportera tabelldata från webbplatsen till en CSV-fil. CSV-filer öppnas i Excel, och nästan alla databaser har ett verktyg för att tillåta import från CSV-filer.

CSV-exempelfil

Data i form av tabeller kallas också CSV (kommaseparerade värden) - bokstavligen "kommaseparerade värden." Detta är ett textformat avsett för presentation av tabelldata. Varje rad i filen är en rad i tabellen. Värdena för enskilda kolumner separeras med en avgränsningssymbol – ett kommatecken (,), ett semikolon (;) eller en annan symbol. CSV kan enkelt läsas och bearbetas av Python.

Betrakta följande tabell

Tabelldata

Programmeringsspråk Designad av Dök upp Förlängning
Python Guido van Rossum 1991 .py
Java james goslin 1995 .Java
C++ Bjarne Stroustrup 1983 .cpp

Du kan representera denna tabell i csv enligt nedan.

CSV-data

Programmeringsspråk, Designed by, Appeared, Extension

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup,1983,.cpp

Som du kan se är varje rad en ny rad, och varje kolumn är separerad med ett kommatecken. Det här är ett exempel på hur en CSV-fil ser ut.

Ladda ner CSV-data

Python CSV-modul

Python tillhandahåller en CSV-modul för att hantera CSV-filer. För att läsa/skriva data måste du gå igenom raderna i CSV-filen. Du måste använda splitmetoden för att få data från angivna kolumner.

CSV-modulfunktioner

I CSV-moduldokumentationen kan du hitta följande funktioner:

  • csv.field_size_limit – returnera maximal fältstorlek
  • csv.get_dialect – hämta dialekten som är associerad med namnet
  • csv.list_dialects – visa alla registrerade dialekter
  • csv.reader – läs data från en csv-fil
  • csv.register_dialect – associera dialekt med namn
  • csv.writer – skriv data till en csv-fil
  • csv.unregister_dialect – radera dialekten som är kopplad till namnet dialektregistret
  • csv.QUOTE_ALL – Citera allt, oavsett typ.
  • csv.QUOTE_MINIMAL – Citatfält med specialtecken
  • csv.QUOTE_NONNUMERIC – Citera alla fält som inte har siffror
  • csv.QUOTE_NONE – Citera inget i output

I den här handledningen kommer vi bara att fokusera på läs- och skrivarfunktionerna som låter dig redigera, modifiera och manipulera data i en CSV-fil.

Hur man läser en CSV-fil i Python

Nedan finns steg för att läsa CSV-filen i Python.

Steg 1) För att läsa data från CSV-filer måste du använda läsarfunktionen för att generera ett läsarobjekt.

Läsarfunktionen är utvecklad för att ta varje rad i filen och göra en lista över alla kolumner. Sedan måste du välja den kolumn du vill ha variabeldata för.

Det låter mycket mer intrikat än vad det är. Låt oss ta en titt på det här Python kod för att läsa CSV-fil, så kommer vi att ta reda på att det inte är så svårt att arbeta med csv-fil.

#import necessary modules
import csv
with open('X:\data.csv','rt')as f:
  data = csv.reader(f)
  for row in data:
        print(row)

Steg 2) När du kör programmet ovan blir resultatet:

['Programming language; Designed by; Appeared; Extension']
['Python; Guido van Rossum; 1991; .py']
['Java; James Gosling; 1995; .java']
['C++; Bjarne Stroustrup;1983;.cpp']

Hur man läser en CSV-fil till en ordbok i Python

Du kan också använda DictReader för att läsa CSV-filer. Resultaten tolkas som en ordbok där rubrikraden är nyckeln och andra rader är värden.

Tänk på följande kod

#import necessary modules
import csv

reader = csv.DictReader(open("file2.csv"))
for raw in reader:
    print(raw)

Resultatet av denna kod är:

OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')])
OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')])
OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])

Läs en CSV-fil i en ordbok

Och det här sättet att läsa data från CSV-fil är mycket enklare än tidigare metod. Detta är dock inte det bästa sättet att läsa data.

Hur man skriver CSV-fil i Python

Så här skriver du in en CSV-fil Python:

När du har en uppsättning data som du vill lagra i en CSV-fil måste du använda writer()-funktionen. För att iterera data över rows(lines), måste du använda funktionen Writerow().

Betrakta följande exempel. Vi skriver data till filen "writeData.csv" där avgränsaren är en apostrof.

#import necessary modules
import csv

with open('X:\writeData.csv', mode='w') as file:
    writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)

    #way to write to csv file
    writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension'])
    writer.writerow(['Python', 'Guido van Rossum', '1991', '.py'])
    writer.writerow(['Java', 'James Gosling', '1995', '.java'])
    writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])

Resultatet i csv-filen är:

Programming language, Designed by, Appeared, Extension 
Python, Guido van Rossum, 1991, .py
Java, James Gosling, 1995, .java
C++, Bjarne Stroustrup,1983,.cpp

skriv in CSV-fil Python

Läs CSV-fil med Pandas

Pandas är ett öppen källkodsbibliotek som låter dig importera CSV till Python och utföra datamanipulation. Pandas ger ett enkelt sätt att skapa, manipulera och radera data.

Du måste installera pandas bibliotek med kommandot pip install pandas . I Windows, kommer du att utföra detta kommando i kommandotolken medan du är i Linux i terminalen.

Att läsa in CSV i en pandas DataFrame är mycket snabbt och enkelt:

#import necessary modules
import pandas
result = pandas.read_csv('X:\data.csv')
print(result)

Resultatet av läs CSV Pandas exempel:

Programming language, Designed by, Appeared, Extension 
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Mycket användbart bibliotek. På bara tre rader kod får du samma resultat som tidigare. Pandas vet att den första raden i CSV-filen innehöll kolumnnamn, och den kommer att använda dem automatiskt.

Skriv CSV-fil med Pandas

Att skriva till CSV-fil med Pandas är lika enkelt som att läsa. Här kan du övertyga i det. Först måste du skapa DataFrame baserat på följande Python skriva till CSV-kod.

from pandas import DataFrame
C = {'Programming language': ['Python','Java', 'C++'],
        'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'],
        'Appeared': ['1991', '1995', '1985'],
        'Extension': ['.py', '.java', '.cpp'],
    }
df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension'])
export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored
print (df)

Här är utgången

Programming language, Designed by, Appeared, Extension
0    Python, Guido van Rossum, 1991, .py
1    Java, James Gosling, 1995, .java
2    C++, Bjarne Stroustrup,1983,.cpp

Och CSV-filen skapas på den angivna platsen.

Skriv CSV-fil med Pandas

Vanliga frågor

En CSV-fil (kommaseparerade värden) är en vanlig textfil som lagrar tabelldata. Varje rad är en rad och värdena i varje kolumn separeras med kommatecken.

Importera csv-modulen, öppna filen och skicka den till csv.reader() för att loopa över rader som listor. Alternativt kan du använda csv.DictReader() för att läsa varje rad som en ordbok.

Öppna en fil i skrivläge, skapa en csv.writer() och anropa writerow() för varje rad eller writerows() för många. Skrivaren hanterar citering och avgränsningstecken åt dig.

csv.DictReader() läser en CSV-fil in i ordnade ordböcker och använder rubrikraden som nycklar. Detta låter dig komma åt varje värde efter kolumnnamn istället för efter index.

Anropa pandas.read_csv('file.csv'), vilket laddar CSV-filen till en DataFrame på en enda rad. Pandas använder automatiskt den första raden som kolumnrubriker.

AI-assistenter som GitHub Copilot autokompletterar CSV- och Pandas-anrop, genererar läs- och skrivloopar och föreslår rätt avgränsare eller citatalternativ från en kort beskrivning.

Ja. AI-drivna verktyg kan automatisera parsning, rensning och konvertering av CSV-data, generera pandas-pipelines och lägga till felhantering för felaktigt formaterade rader eller saknade kolumner.

Använd den inbyggda csv-modulen för enkel och lätt läsning och skrivning. Välj pandas när du behöver filtrera, transformera eller analysera stora CSV-datamängder effektivt.

Sammanfatta detta inlägg med: