Recherche…


Introduction

De petits fichiers csv simples peuvent être créés en utilisant juste un éditeur de texte. En les lisant et en les écrivant, ou en traitant autrement leur contenu, on utilise plus efficacement les produits disponibles pour la langue ou les systèmes de choix.

Lire et écrire en Python

CSV (valeurs séparées par des virgules) est un format de fichier simple utilisé pour stocker des données tabulaires, telles qu'une feuille de calcul. Ceci est un exemple minimal de la façon d'écrire et de lire des données en Python.

Écrire des données dans un fichier CSV:

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)

Lecture des données d'un fichier CSV:

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

Lire et écrire en Java

L'exemple ci-dessous montre comment lire et écrire un fichier csv sans aucune bibliothèque tierce.

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

Lire 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;
    }  
}

Il existe également des bibliothèques tierces pré-compilées qui fournissent des moyens pratiques d’analyser les fichiers csv. Voici quelques exemples de telles bibliothèques.

OpenCSV

OpenCSV est considéré comme très simple à utiliser et fournit des fonctionnalités flexibles lors de l'analyse des fichiers CSV

/** 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 permet également de lier les enregistrements directement à JavaBeans. pour plus d'informations, consultez la documentation officielle ici .

Parmi les autres bibliothèques connues, on trouve SuperCSV et CommonsCSV, qui fournissent également des fonctionnalités avancées. Reportez-vous à la documentation officielle pour plus d'informations.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow