Buscar..


Introducción

Los archivos csv pequeños y simples pueden construirse usando solo un editor de texto. Leerlos y escribirlos o, de lo contrario, procesar sus contenidos se hace de manera más eficiente utilizando los productos disponibles para el idioma o los sistemas de su elección.

Leer y escribir en Python

CSV (valores separados por comas) es un formato de archivo simple que se utiliza para almacenar datos tabulares, como una hoja de cálculo. Este es un ejemplo mínimo de cómo escribir y leer datos en Python.

Escribir datos en un archivo 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)

Leyendo datos de un archivo 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

Leer y escribir en Java

El siguiente ejemplo muestra formas de leer y escribir archivos csv sin bibliotecas de terceros.

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

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

También hay algunas bibliotecas de terceros precompiladas que proporcionan formas convenientes de analizar archivos csv. A continuación se presentan algunos ejemplos de tales bibliotecas.

OpenCSV

OpenCSV se considera muy simple de usar y proporciona funcionalidades flexibles al analizar archivos 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 también permite enlazar los registros directamente a JavaBeans. Para más información consulte la documentación oficial aquí .

Otras bibliotecas conocidas incluyen SuperCSV y CommonsCSV que proporcionan algunas funcionalidades avanzadas también. Consulte la documentación oficial para más información.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow