csv
CSV-bestandsverwerking in verschillende talen
Zoeken…
Invoering
Kleine, eenvoudige csv-bestanden kunnen worden gebouwd met alleen een teksteditor. Het lezen en schrijven ervan of het anders verwerken van de inhoud gebeurt efficiënter met behulp van de producten die beschikbaar zijn voor de taal of systemen van uw keuze.
Lezen en schrijven in Python
CSV (Comma Separated Values) is een eenvoudige bestandsindeling die wordt gebruikt om tabelgegevens op te slaan, zoals een spreadsheet. Dit is een minimaal voorbeeld van het schrijven en lezen van gegevens in Python.
Gegevens schrijven naar een CSV-bestand:
import csv
data = [["Ravi", "9", "550"], ["Joe", "8", "500"], ["Brian", "9", "520"]]
with open('students.csv', 'wb') as csvfile:
writer = csv.writer(csvfile, delimiter=',')
writer.writerows(data)
Gegevens lezen uit een CSV-bestand:
import csv
with open('students.csv', 'rb') as csvfile:
spamreader = csv.reader(csvfile, delimiter=',',)
for row in spamreader:
print("Name: {} class: {} Marks: {}".format(row[0], row[1], row[2]))
output:
Name: Ravi class: 9 Marks: 550
Name: Joe class: 8 Marks: 500
Name: Brian class: 9 Marks: 520
Lezen en schrijven op Java
Onderstaand voorbeeld toont manieren om een csv-bestand te lezen en te schrijven zonder bibliotheken van derden.
Schrijf CSV
public void writeToCsvFile(List<String[]> thingsToWrite, String separator, String fileName){
try (FileWriter writer = new FileWriter(fileName)){
for (String[] strings : thingsToWrite) {
for (int i = 0; i < strings.length; i++) {
writer.append(strings[i]);
if(i < (strings.length-1))
writer.append(separator);
}
writer.append(System.lineSeparator());
}
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
}
Lees CSV
// Allows to define custom separator
public List<String[]> readFromCsvFile(String separator, String fileName){
try (BufferedReader reader = new BufferedReader(new FileReader(fileName))){
List<String[]> list = new ArrayList<>();
String line = "";
while((line = reader.readLine()) != null){
String[] array = line.split(separator);
list.add(array);
}
return list;
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
Er zijn ook enkele vooraf gecompileerde bibliotheken van derden die handige manieren bieden om csv-bestanden te parseren. Hieronder staan enkele voorbeelden van dergelijke bibliotheken.
OpenCSV
OpenCSV wordt als zeer eenvoudig te gebruiken beschouwd en biedt flexibele functionaliteiten tijdens het parseren van CSV-bestanden
/** Reading CSV **/
// Allows varied parameters through constructors to define quote character, number of lines to skip, etc.
try(CSVReader reader = new CSVReader(new FileReader("yourfile.csv"), separator)){
List<String[]> = reader.readAll();
// Do something with the data
}
/** Writing CSV **/
List<String[]> listToWrite= //fetch the list of string array to write;
try(CSVWriter writer = new CSVWriter(new FileWriter(fileName), separator)){
writer.writeAll(listToWrite);
writer.flush();
}
/** Dumping database records to CSV **/
// Initialize CSVWriter and fetch resultSet from database ...
writer.writeAll(resultSet, includeColumnNames);
OpenCSV maakt het ook mogelijk om de records rechtstreeks aan JavaBeans te binden. Raadpleeg voor meer informatie de officiële documentatie hier .
Andere bekende bibliotheken omvatten SuperCSV en CommonsCSV die ook enkele geavanceerde functionaliteiten bieden. Raadpleeg de officiële documentatie voor meer informatie.