csv
Обработка файлов CSV на разных языках
Поиск…
Вступление
Маленькие, простые файлы csv могут быть созданы с помощью текстового редактора. Чтение и запись их или обработка их содержимого осуществляется более эффективно с использованием продуктов, доступных для вашего языка или систем выбора.
Чтение и письмо в Python
CSV (Comma Separated Values) - это простой формат файла, используемый для хранения табличных данных, таких как электронная таблица. Это минимальный пример того, как писать и читать данные на Python.
Запись данных в файл 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)
Чтение данных из файла 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
Чтение и запись на Java
Ниже приведен пример чтения и записи csv-файла без каких-либо сторонних библиотек.
Запись 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();
}
}
Чтение 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;
}
}
Существуют также некоторые предварительно скомпилированные сторонние библиотеки, которые предоставляют удобные способы анализа файлов CSV. Ниже приведены некоторые примеры таких библиотек.
OpenCSV
OpenCSV считается очень простым в использовании и предоставляет гибкие функциональные возможности при анализе файлов 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 также позволяет привязывать записи непосредственно к JavaBeans. для получения дополнительной информации см. официальную документацию здесь .
Другие известные библиотеки включают SuperCSV и CommonsCSV, которые обеспечивают некоторые расширенные функциональные возможности. Для получения дополнительной информации обратитесь к официальной документации.