Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

CSV-bestand lezen in Python | CSV-bestand lezen en schrijven

Wat is een CSV-bestand?

Een CSV-bestand is een eenvoudig type tekstbestand dat een specifieke structuur gebruikt om tabelgegevens te rangschikken. De standaardindeling van een CSV-bestand wordt gedefinieerd door rij- en kolomgegevens waarbij een nieuwe regel elke rij beëindigt om de volgende rij te beginnen, en elke kolom wordt gescheiden door een komma binnen de rij.

CSV is een veelgebruikt formaat voor gegevensuitwisseling omdat het compact, eenvoudig en algemeen is. Veel online services stellen hun gebruikers in staat om tabelgegevens van de website naar een CSV-bestand te exporteren. CSV-bestanden worden geopend in Excel en bijna alle databases hebben een tool om import uit CSV-bestanden toe te staan.

In deze tutorial leer je:

  • Wat is een CSV-bestand?
  • CSV-voorbeeldbestand
  • Python CSV-module
  • CSV-modulefuncties
  • Een CSV-bestand lezen in Python
  • Een CSV-bestand inlezen in een woordenboek in Python
  • Hoe een CSV-bestand in Python te schrijven
  • Lees CSV-bestand met Panda's
  • Schrijf een CSV-bestand met Panda's

CSV-voorbeeldbestand

Gegevens in de vorm van tabellen worden ook wel CSV (comma-separated values) genoemd - letterlijk 'door komma's gescheiden waarden'. Dit is een tekstformaat dat bedoeld is voor de presentatie van tabelgegevens. Elke regel van het bestand is één regel van de tabel. De waarden van afzonderlijke kolommen worden gescheiden door een scheidingsteken - een komma (,), een puntkomma (;) of een ander symbool. CSV kan gemakkelijk worden gelezen en verwerkt door Python.

Bekijk de volgende tabel

Tabelgegevens

Programmeertaal Ontworpen door Verschenen Extensie
Python Guido van Rossum 1991 .py
Java James Gosling 1995 .java
C++ Bjarne Stroustrup 1983 .cpp

U kunt deze tabel in csv weergeven zoals hieronder.

CSV-gegevens

Programmeertaal, Ontworpen door, Verscheen, Extensie

Python, Guido van Rossum, 1991, .py

Java, James Gosling, 1995, .java

C++, Bjarne Stroustrup, 1983,.cpp

Zoals u kunt zien, is elke rij een nieuwe regel en wordt elke kolom gescheiden door een komma. Dit is een voorbeeld van hoe een CSV-bestand eruitziet.

CSV-gegevens downloaden

Python CSV-module

Python biedt een CSV-module om CSV-bestanden te verwerken. Om gegevens te lezen/schrijven, moet u de rijen van de CSV doorlopen. U moet de split-methode gebruiken om gegevens uit gespecificeerde kolommen te krijgen.

CSV-modulefuncties

In de documentatie van de CSV-module vindt u de volgende functies:

  • csv.field_size_limit – retourneer maximale veldgrootte
  • csv.get_dialect – haal het dialect op dat bij de naam hoort
  • csv.list_dialects – toon alle geregistreerde dialecten
  • csv.reader – lees gegevens uit een csv-bestand
  • csv.register_dialect – associeer dialect met naam
  • csv.writer – schrijf gegevens naar een csv-bestand
  • csv.unregister_dialect – verwijder het dialect geassocieerd met de naam van het dialectregister
  • csv.QUOTE_ALL – Citeer alles, ongeacht het type.
  • csv.QUOTE_MINIMAL – Offertevelden met speciale tekens
  • csv.QUOTE_NONNUMERIC - Citeer alle velden die geen getallenwaarde zijn
  • csv.QUOTE_NONE – Citeer niets in de output

In deze zelfstudie gaan we ons alleen concentreren op de lees- en schrijffuncties waarmee u de gegevens in een CSV-bestand kunt bewerken, wijzigen en manipuleren.

Hoe een CSV-bestand in Python te lezen

Hieronder staan ​​de stappen om het CSV-bestand in Python te lezen.

Stap 1) Om gegevens uit CSV-bestanden te lezen, moet u de lezerfunctie gebruiken om een ​​lezerobject te genereren.

De leesfunctie is ontwikkeld om elke rij van het bestand te nemen en een lijst van alle kolommen te maken. Vervolgens moet u de kolom kiezen waarvoor u de variabele gegevens wilt hebben.

Het klinkt veel ingewikkelder dan het is. Laten we deze Python-code eens bekijken om het CSV-bestand te lezen, en we zullen ontdekken dat het werken met een csv-bestand niet zo moeilijk is.

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

Stap 2) Als u het bovenstaande programma uitvoert, is de uitvoer:

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

Een CSV-bestand inlezen in een woordenboek in Python

U kunt DictReader ook gebruiken om CSV-bestanden te lezen. De resultaten worden geïnterpreteerd als een woordenboek waarbij de koprij de sleutel is en andere rijen waarden.

Overweeg de volgende code

#import necessary modules
import csv

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

Het resultaat van deze code is:

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

En deze manier om gegevens uit een CSV-bestand te lezen is veel eenvoudiger dan de eerdere methode. Dit is echter niet de beste manier om gegevens te lezen.

Hoe een CSV-bestand in Python te schrijven

Zo schrijft u een CSV-bestand in Python:

Als je een set gegevens hebt die je in een CSV-bestand wilt opslaan, moet je de writer()-functie gebruiken. Om de gegevens over de rijen(lijnen) te herhalen, moet u de functie writerow() gebruiken.

Beschouw het volgende voorbeeld. We schrijven gegevens in een bestand "writeData.csv" waar het scheidingsteken een apostrof is.

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

Resultaat in csv-bestand is:

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

Lees CSV-bestand met Panda's

Pandas is een opensource-bibliotheek waarmee u CSV in Python kunt importeren en gegevensmanipulatie kunt uitvoeren. Panda's bieden een gemakkelijke manier om gegevens aan te maken, te manipuleren en te verwijderen.

Je moet de pandas-bibliotheek installeren met het commando pip install pandas. In Windows voert u deze opdracht uit in de opdrachtprompt terwijl u in Linux in de terminal bent.

Het inlezen van de CSV in een Panda's DataFrame gaat heel snel en gemakkelijk:

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

Resultaat van het gelezen CSV Panda's voorbeeld:

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

Zeer handige bibliotheek. In slechts drie regels code heb je hetzelfde resultaat als eerder. Panda's weten dat de eerste regel van de CSV kolomnamen bevat en zal deze automatisch gebruiken.

Schrijf een CSV-bestand met Panda's

Schrijven naar een CSV-bestand met Panda's is net zo eenvoudig als lezen. Hierin kunt u overtuigen. Eerst moet u DataFrame maken op basis van de volgende Python-schrijf naar CSV-code.

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)

Hier is de uitvoer

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

En het CSV-bestand wordt op de opgegeven locatie gemaakt.

Conclusie

Dus nu weet je hoe je methode 'csv' gebruikt en ook gegevens in CSV-indeling leest en schrijft. CSV-bestanden worden veel gebruikt in softwaretoepassingen omdat ze gemakkelijk te lezen en te beheren zijn en omdat ze door hun kleine formaat relatief snel kunnen worden verwerkt en verzonden.

De csv-module biedt verschillende functies en klassen waarmee u gemakkelijk kunt lezen en schrijven. Je kunt de officiële Python-documentatie bekijken en nog meer interessante tips en modules vinden. CSV is de beste manier om gegevens op te slaan, te bekijken en te verzenden. Eigenlijk is het niet zo moeilijk om te leren als het in het begin lijkt. Maar met een beetje oefening zul je het onder de knie krijgen.

Pandas is een geweldig alternatief om CSV-bestanden te lezen.

Er zijn ook andere manieren om tekstbestanden te ontleden met bibliotheken zoals ANTLR, PLY en PlyPlus. Ze kunnen allemaal zware parsing aan, en als eenvoudige String-manipulatie niet werkt, zijn er reguliere expressies die u kunt gebruiken.


Python

  1. Python-sleutelwoorden en -ID's
  2. Python-verklaring, inspringing en opmerkingen
  3. Python-variabelen, constanten en literalen
  4. Python Type Conversie en Type Casting
  5. Python invoer, uitvoer en import
  6. Python globale, lokale en niet-lokale variabelen
  7. Python-bestand I/O
  8. Python-directory en bestandsbeheer
  9. Python-fouten en ingebouwde uitzonderingen
  10. Hoe de huidige datum en tijd in Python te krijgen?
  11. Hoe RAM vanuit een bestand te initialiseren met TEXTIO