Suche…


Einführung

Kleine, einfache CSV-Dateien können mit einem Texteditor erstellt werden. Sie zu lesen und zu schreiben oder deren Inhalte anderweitig zu verarbeiten, wird mit den verfügbaren Produkten für die Sprache oder das System der Wahl effizienter ausgeführt.

Lesen und Schreiben in Python

CSV (Comma Separated Values) ist ein einfaches Dateiformat, das zum Speichern von Tabellendaten verwendet wird, z. B. einer Kalkulationstabelle. Dies ist ein minimales Beispiel für das Schreiben und Lesen von Daten in Python.

Daten in eine CSV-Datei schreiben:

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)

Daten aus einer CSV-Datei lesen:

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

Lesen und Schreiben in Java

Das folgende Beispiel zeigt Möglichkeiten zum Lesen und Schreiben von CSV-Dateien ohne Bibliotheken von Drittanbietern.

Schreiben Sie 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();
    }
}

Lesen Sie 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;
    }  
}

Es gibt auch einige vorkompilierte Bibliotheken von Drittanbietern, die praktische Möglichkeiten zum Analysieren von CSV-Dateien bieten. Im Folgenden finden Sie einige Beispiele für solche Bibliotheken.

OpenCSV

OpenCSV gilt als sehr einfach zu bedienen und bietet flexible Funktionen beim Analysieren von CSV-Dateien

/** 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 erlaubt auch das direkte Binden der Datensätze an JavaBeans. Weitere Informationen finden Sie offizielle Dokumentation hier .

Andere bekannte Bibliotheken umfassen SuperCSV und CommonsCSV , die ebenfalls einige erweiterte Funktionen bieten. Weitere Informationen finden Sie in der offiziellen Dokumentation.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow