Программисты часто сталкиваются с задачей обработки больших объемов структурированных данных. Python имеет встроенную библиотеку CSV, с помощью которой программист может работать со специальными CSV файлами. Это своего рода электронные таблицы.
Что такое файлы CSV
Файл CSV – это особый вид файла, который позволяет структурировать большие объемы данных.
По сути, он является обычным текстовым файлом, однако каждый новый элемент отделен от предыдущего запятой или другим разделителем. Обычно каждая запись начинается с новой строки. Данные CSV можно легко экспортировать в электронные таблицы или базы данных. Программист может расширять CSV файл, добавляя новые строки.
Пример CSV файла, где в качестве разделителя используется запятая:
Имя,Профессия,Год рождения Виктор,Токарь, 1995 Сергей,Сварщик,1983
Как видно из примера, в первой строке обычно указывается, какая информация будет находиться в каждом столбце. Кроме того, после последнего элемента строки запятая не ставиться, интерпретатор определяет конец строки по символу переноса.
Уроки Python / Работаем с CSV файлами (считываем и записываем данные)
Вместо запятой можно использовать любой другой разделитель, поэтому при чтении CSV файла нужно заранее знать, какой символ используется.
Важно помнить, что CSV – это обычный текстовый файл, который не поддерживает символы в кодировках, отличающихся от ASCII или Unicode.
Библиотека CSV
Эта основная библиотека для работы с CSV файлами в Python.
Библиотека csv является встроенной, поэтому её не нужно скачивать, достаточно использовать обычный импорт:
import csv
Чтение из файлов (парсинг)
Для того чтобы прочитать данные из файла, программист должен создать объект reader:
reader_object = csv.reader(file, delimiter = «,»)
reader имеет метод __next__() , то есть является итерируемым объектом, поэтому чтение из файла происходит следующим образом:
import csv with open(«classmates.csv», encoding=’utf-8′) as r_file: # Создаем объект reader, указываем символ-разделитель «,» file_reader = csv.reader(r_file, delimiter = «,») # Счетчик для подсчета количества строк и вывода заголовков столбцов count = 0 # Считывание данных из CSV файла for row in file_reader: if count == 0: # Вывод строки, содержащей заголовки для столбцов print(f’Файл содержит столбцы: ‘) else: # Вывод строк print(f’ — и он родился в году.’) count += 1 print(f’Всего в файле строк.’)
Предположим, что у нас есть CSV файл, который содержит следующую информацию:
Имя,Успеваемость,Год рождения Саша,отличник,200 Маша,хорошистка,1999 Петя,троечник,2000
Тогда, если открыть этот файл в нашей программе, то будут получены следующие результаты:
Файл содержит столбцы: Имя, Успеваемость, Год рождения Саша — отличник и он родился в 200 году. Маша — хорошистка и он родился в 1999 году. Петя — троечник и он родился в 2000 году. Всего в файле 4 строк.
Использование конструкции with…as позволяет программисту быть уверенным, что файл будет закрыт, даже если при выполнении кода произойдет какая-то ошибка.
Как открыть (преобразовать) CSV файл в EXCEL
Обратите внимание, что при открытии нужно указать правильную кодировку, в которой сохранены данные. В данном случае encoding=’utf-8′. Если не указывать, то будет использоваться кодировка по умолчанию. Для Windows это cp1251.
Библиотека CSV позволяет работать с файлами, как со словарями, для этого нужно создать объект DictReader. Обращаться к элементам можно по имени столбцов, а не с помощью индексов. Для того, чтобы исходная программа делала аналогичный вывод, её следует изменить следующим образом:
import csv with open(«classmates.csv», encoding=’utf-8′) as r_file: # Создаем объект DictReader, указываем символ-разделитель «,» file_reader = csv.DictReader(r_file, delimiter = «,») # Счетчик для подсчета количества строк и вывода заголовков столбцов count = 0 # Считывание данных из CSV файла for row in file_reader: if count == 0: # Вывод строки, содержащей заголовки для столбцов print(f’Файл содержит столбцы: ‘) # Вывод строк print(f’ — ‘, end=») print(f’ и он родился в году.’) count += 1 print(f’Всего в файле строк.’)
Обращаться к элементам по названию столбца более удобно, кроме того, это упрощает понимание кода.
Обратите внимание, что в цикл for при первой итерации будет записан в row не шапка таблицы, а первая её строка. Поэтому при выводе количества строк переменную count увеличили на 1.
Дополнительные параметры объекта DictReader
DictReader имеет параметры:
- dialect — Набор параметров для форматирования информации. Подробнее про них ниже.
- line_num — Устанавливает количество строк, которое может быть прочитано.
- fieldnames — Определяет заголовки для столбцов, если не определить атрибут, то в него запишутся элементы из первой прочитанной строки файла. Заголовки нужны для того, чтобы легко было понять, какая информация содержится или должна содержаться в столбце.
Например, если бы в classmates.csv не было бы первой строки с заголовками, то можно было бы его открыть следующим образом:
fieldnames = [‘Имя’, ‘Успеваемость’, ‘Год рождения’] file_reader = csv.DictReader(r_file, fieldnames = fieldnames)
Также можно использовать метод __next__() для получения следующей строки. Этот метод делает объект reader итерируемым. То есть он вызывается при каждой итерации и возвращает следующую строку. Этот метод и используется при каждой итерации в цикле for для получения очередной строки.
Запись в файлы
Для записи информации в CSV файл необходимо создать объект writer:
file_writer = csv.writer(w_file, delimiter = «t»)
Для записи в файл данных используется метод writerow(), который имеет следующий синтаксис:
writecol(«Имя», «Фамилия», «Отчество»)
Код программы для записи в CSV файл выглядит так:
import csv with open(«classmates.csv», mode=»w», encoding=’utf-8′) as w_file: file_writer = csv.writer(w_file, delimiter = «,», lineterminator=»r») file_writer.writerow([«Имя», «Класс», «Возраст»]) file_writer.writerow([«Женя», «3», «10»]) file_writer.writerow([«Саша», «5», «12»]) file_writer.writerow([«Маша», «11», «18»])
Обратите внимание, что при записи использовался, lineterminator=»r» . Это разделитель между строками таблицы, по умолчанию он «rn» .
После выполнения программы в файле CSV будет следующий текст:
Имя,Класс,Возраст Женя,3,10 Саша,5,12 Маша,11,18
В качестве параметра метод writerow() принимает список, элементы которого будут записаны в строку через символ-разделитель.
Запись в файл также может быть осуществлена с помощью объекта DictWriter. Важно помнить, что он требует явного указания параметра fieldnames. В качестве аргумента метода writerow используется словарь.
Код программы выглядит так:
import csv with open(«classmates.csv», mode=»w», encoding=’utf-8′) as w_file: names = [«Имя», «Возраст»] file_writer = csv.DictWriter(w_file, delimiter = «,», lineterminator=»r», fieldnames=names) file_writer.writeheader() file_writer.writerow() file_writer.writerow() file_writer.writerow()
Вывод в файл будет следующим:
Имя,Возраст Саша,6 Маша,15 Вова,14
Дополнительные параметры DictWriter
Объект writer также имеет атрибут dialect, который определяет, как будут форматироваться данные при записи в файл, про него будет описано ниже.
Кроме того, writer имеет методы:
- writerows(rows) — Записывает все элементы строк.
- writeheader() — Выводит заголовки для столбцов. Заголовки должны быть переданы объекту writer в виде списка, как атрибут fieldnames.
writeheader был использован в предыдущем примере. Рассмотрим применение writerows :
file_writer.writerows([, , ])
Диалекты
Чтобы каждый раз не указывать формат входных и выходных данных, определенные параметры форматирования сгруппированы в диалекты (dialect). При создании объекта reader или writer программист может указать нужный ему диалект, кроме того, некоторые параметры диалекта можно переопределить вручную, также указав их при создании объекта.
Для создания диалекта используется команда:
register_dialect(«имя», delimiter = «t», . )
Класс Dialect позволяет определить следующие атрибуты форматирования:
Атрибут | Значение |
delimiter | Устанавливает символ, с помощью которого разделяются элементы в файле. По умолчанию используется запятая. |
doublequote | Если True, то символ quotechar удваивается, если False, то к символу qutechar добавляется ecsapechar в качестве префикса. |
escapechar | Строка из одного символа, которая используется для экранирования символа-разделителя. |
lineterminator | Определяет разделитель для строк, по умолчанию используется «rn» |
quotechar | Определяет символ, который используется для окружения символа-разделителя. По умолчанию используются двойные кавычки, то есть quotechar = ‘ » ‘. |
quoting | Определяет символ, который используется для экранирования символа разделителя (если не используются кавычки). |
skipinitialspace | Если установить значение этого параметра в True, то все пробелы после символа-разделителя будут игнорироваться. |
strict | Если установить в True, то при неправильном вводе CSV будет возбуждаться исключение Error. |
Пример использования:
import csv csv.register_dialect(‘my_dialect’, delimiter=’:’, lineterminator=»r») with open(«classmates.csv», mode=»w», encoding=’utf-8′) as w_file: file_writer = csv.writer(w_file, ‘my_dialect’) file_writer.writerow([«Имя», «Класс», «Возраст»]) file_writer.writerow([«Женя», «3», «10»]) file_writer.writerow([«Саша», «5», «12»]) file_writer.writerow([«Маша», «11», «18»])
В результате получим:
Имя:Класс:Возраст Женя:3:10 Саша:5:12 Маша:11:18
Источник: all-python.ru
Файлы CSV в Windows – как использовать и конвертировать в другой формат
Некоторые пользователи впервые столкнулись с подобным расширением файлов и не знают, что это такое и для чего их применяют. Другие пользователи уже некоторое время работают с этим форматом, однако в один момент что-то пошло не так, и не знают, как исправить появившуюся проблему. В данной статье, мы подробно расскажем, что же это за формат, для чего он предназначен, как его создать и каким образом можно открыть, чтобы файл отображался корректно и был читабельным.
CSV-формат (comma separated values) – в переводе на русский, дословно означает — значения разделенные запятой. В Соединенных Штатах Америки значения действительно разделены запятой, однако на территории стран СНГ разделителем может служить не только запятая, чаще всего это точка с запятой, также встречаются пробелы, знаки табуляции, запятая и не только. На самом деле, это не играет особой роли, так как, если использовать специальные программы для открытия файлов этого формата, в них предусмотрены различные настройки, и пользователь даже не будет об этом задумываться.
Что представляет собой csv-формат? Это обычный текстовый файл, который можно открыть при помощи блокнота, Word или Excel. Это очень популярный формат, зачастую его используют для создания табличных данных и обмена ими. Также пользователи могут столкнуться с проблемой корректного отображения файлов в редакторе. Если открыть такой файл при помощи стандартных программ, они могут неправильно распознать кодировку и результаты будут представлены просто набором букв, цифр или символов.
Он существует уже достаточно давно, более сорока лет. И за это время он никак не утратил популярности в связи со своей простотой и удобством. Зачастую свое применение он находит в бизнесе. Единственной проблемой является то, что для работы с ним будет недостаточно текстового редактора. Конечно, можно использовать только его, но это займет очень много времени в отдельных случаях.
Например, для простых таблиц сложностей у пользователя не возникнет вообще, но если нужно работать с более сложными – поля разной длины, большое количество строк и так далее, тогда могут возникнуть сложности и лучше применить специальные программы для открытия этих файлов. Более подробно такие программы разберем в разделе ниже.
Как открыть файл CSV
Программное обеспечение управления электронными таблицами обычно используется для открытия и редактирования файлов CSV, такое как бесплатный OpenOffice Calc или Kingsoft Spreadsheets. Инструменты электронных таблиц отлично подходят для файлов CSV, потому что данные, содержащиеся в файле, будут каким-то образом фильтроваться или обрабатываться.
Для просмотра и/или редактирования вашего CSV-файла в интернете вы можете использовать Google Sheets. Чтобы сделать это, загрузите файл на Google Диск через «Создать» → «Загрузка файла», щелкните правой кнопкой мыши файл на Google Диске, когда закончите загрузку, и выберите «Открыть с помощью» → «Google Таблицы».
Вы также можете использовать текстовый редактор для открытия файлов CSV, но с большими из них будет очень трудно работать в этих типах программ.
Microsoft Excel также поддерживает файлы CSV, но программа не бесплатна для использования. Несмотря на это, вероятно, это наиболее часто используемая программа для файлов CSV.
Учитывая количество программ, поддерживающих структурированные текстовые данные, такие как CSV, у вас может быть установлено более одной программы, которая сможет открывать файлы такого типа. Если это так, и та, которая открывается по умолчанию при двойном щелчке по файлам CSV в Windows, не соответствует вашим ожиданиям, знайте, что изменить эту программу очень легко: как изменить ассоциации файлов в Windows.
Как и чем открыть файл CSV расширения
Далее рассмотрим, чем открыть CSV формат. Это делается через онлайн-ресурсы, Android-приложения и компьютерный софт.
Просмотр формата CSV онлайн
Обзор ридеров для размера CSV начнем с онлайн-ресурсов. Чтобы открыть CSV онлайн, зайдите на сайт Convert Csv. Далее ваши действия таковы:
- загрузите файл на главную страницу сайта удобным способом: выберите с компьютера, введите URL-адрес файла или “перетащите” его в специальное поле;
- задайте параметры разделителей в поле Field Separator;
- выберите способ отображения: показать на сайте или конвертировать в Excel.
Таблица воспроизведется на сайте в текстовом формате или как таблица Excel.
Второй способ открыть расширение CSV онлайн – сервис Google Таблицы.
- Авторизуйтесь в своей учетной записи Google и откройте Google-таблицы. На стартовой странице нажмите значок с папкой.
- Укажите тип файла и нажмите «Открыть».
- Начнется загрузка файла. После этого таблица откроется на ресурсе. Для разделения ячеек по умолчанию используются запятые.
Открываем файл CSV на компьютере
Рассказываем, чем открыть CSV на компьютере, кроме штатного Microsoft Office Excel.
Подойдет программа CSVed для просмотра и редактуры файлов CSV. Она поддерживает разные символы разделителей. Добавляйте или удаляйте текстовые элементы и ячейки, экспортируйте файл в форматы HTML, Excel, Word, XML. Делайте поиск по тексту, связывайте колонки.
Утилита не поддерживает русский язык, но это не мешает работе. Функции разбиты по разделам, что облегчает управление файлами.
Как открыть формат CSV в Еxcel
Открыть формат CSV напрямую в Еxcel достаточно просто.
Открываем расширение CSV на Android
Бесплатный вьювер CSV Viewer работает с форматом CSV на устройствах Android. Утилита поддерживает несколько типов разделителей (запятая, точка с запятой, пробел, табуляция), переключение между страницами нажатием на экран. Приложение видит файлы на флешке и загружает из облака.
↓ 05 – CSVpad | Windows | Linux
CSVpad — удобный бесплатный редактор CSV (значения с разделителями-запятыми). Он поддерживает юникод и является портативным приложением. CSVpad может манипулировать столбцами и строками. Экспортируйте CSV-файлы в html / xml / OpenDocument Spreadsheet (ods) и Microsoft Excel 8.0 (xls) файлы. CSVpad основан на DMcsvEditor, он работает под Windows 8, Windows 7, Windows Vista, Windows XP и Linux.
Есть одна или две бонусные функции: «Снимок» сохраняет JPG таблицы, «Поиск онлайн» открывает веб-страницу с результатами поиска Google по выбранной ячейке. После этого файл можно сохранить в CSV или с другими поддерживаемыми разделителями (вкладка/двоеточие/полустоечник и т.д.), или экспортировать как XLS, ODS, XML или HTML.
Открываем CSV файл в Excel
Если с кодировкой текста все нормально, то CSV файл можно открывать в Excel. Это можно сделать разными способами. Самый простой вариант, это просто кликнуть по CSV файлу правой кнопкой мышки и выбрать « Открыть с помощью – Excel ».
Также вы можете сначала открыть Excel, а потом воспользоваться меню « Файл – Открыть ».
В большинстве случаев, если у текста правильная кодировка, то это хорошо работает и Excel без проблем открывает CSV таким способом. При этом все данные правильно распределяются по соответствующим им ячейкам.
Но, в некоторых случаях подобный способ открытия CSV файлов может сработать не в полной мере. Например, текст загрузится в Excel, но данные не будут распределены по столбцам. Либо данные из CSV будут искажены стандартным форматом ячеек, который используется в таблице. Решение подобных проблем мы рассмотрим ниже.
Просмотр формата csv онлайн
Для того, чтобы открыть CSV формат на компьютере без установки сторонних программ, можно использовать онлайн-сервисы. Вот список самых распространенных из них:
- Excel Online
- Google Docs
- Online CSV Editor
В заключение
Как видно из статьи, корректно открыть файл CSV в Excel — задача нетривиальная даже для опытного пользователя. Недостаток в виде плохой стандартизации делает его неудобным в использовании, нечитаемым в разных регионах с разными разделителями.
Но благодаря полезным плагинам вроде Power Query и знаний об особенностях подобных баз данных можно облегчить себе работу и исключить пропажу информации в документе.
Что можно сделать с проблемными csv файлами
Если расширение csv некорректно отображается в программах, необходимо открыть csv документ в программе Excel. Далее нажмите кнопку «Файл», «Сохранить как» и «Другие форматы» (скрин 6).
Выбираете из списка форматов – «Текст Юникода». Затем нажимаете «Сохранить» и снова перезапускаете файл csv.
Также для решения этой проблемы можно использовать программы, которые работают только с csv документами. Если программы вам не помогают, откройте в браузере сервис-конвертер, загрузите на него файл csv. Далее конвертируйте в другой формат и скопируйте данные в другую таблицу.
Источник: fobosworld.ru
Чем открыть файл формата CSV
На нашем сайте было рассмотрено уже достаточно большое количество форматов файлов, с которыми могут сталкиваться пользователи, не зная, какой программой их можно открывать. Как вы догадываетесь, это капля в море, и обсуждение этой темы можно продолжать до бесконечности. В данной же статье речь пойдет о файле формата CSV.
И сначала несколько слов о том, что представляет собой файл формата CSV и какую информацию он может содержать. CSV – достаточно известный формат документа, содержимое которого представляет собой обычную электронную таблицу с базой данных. Например, подобный формат достаточно часто используется для экспорта или импорта телефонной книги.
Чем открыть файл формата CSV?
Учитывая, что файл CSV представляет собой текстовый документ, представленный в виде таблицы, то и открыть данный файл можно практически любой программой, поддерживающей работу с электронными таблицами.
Microsoft Office Excel
Начнем, пожалуй, с самой популярной в мире программы для работы с электронными таблицами. Программа Excel входит в офисный пакет Microsoft Office, поэтому следует учитывать, что если вам требуется использовать лишь эту программу, платить придется за весь офисный пакет в целом. Однако, если вам часто работать с таблицами, набором текста, составлять презентации и выполнять другие задачи, данный пакет – выгодное вложение.
LibreOffice Calc
Если пакет Microsoft Office является платным решением и, скажем честно, весьма недешевым, то офисный пакет LibreOffice – это качественный офисный пакет, который распространяется абсолютно бесплатно.
В состав данного пакета входит программа Calc, которая представляет собой аналог Excel – здесь даже интерфейс и принцип управления очень схожи.
OpenOffice.org
Третий офисный пакет, который позволяет работать с текстовыми документами различных форматов, в том числе и с файлами CSV. Как и в прошлом случае, неоспоримое достоинство данного офисного пакета заключается в том, что он распространяется полностью бесплатно.
Notepad++
Если первые три решения – достаточно тяжелые офисные пакеты, которые рационально загружать на компьютер в случае, если вам требуется работать не только с форматом CSV, то Notepad++ – это простенький инструмент для работы с документами различных форматов, в том числе и CSV.