Как читать и писать CSV-файлы в Python
Формат CSV является наиболее часто используемым форматом импорта и экспорта для баз данных и электронных таблиц. В этом руководстве будет подробно рассказано о CSV, а также о модулях и классах, доступных для чтения и записи данных в файлы CSV. Также будет рассмотрен рабочий пример, показывающий, как читать и записывать данные в файл CSV на Python.
Файл CSV (значения, разделенные запятыми) позволяет сохранять данные в табличной структуре с расширением .csv. CSV-файлы широко используются в приложениях электронной коммерции, поскольку их очень легко обрабатывать. Некоторые из областей, где они были использованы, включают в себя:
- импорт и экспорт данных клиентов
- импорт и экспорт продукции
- экспорт заказов
- экспорт аналитических отчетов по электронной коммерции
Что скрывает в себе файл CSV?
Во-первых, возникает вполне ожидаемый вопрос — что же это вообще такое? CSV файлы – сжатые табличные данные, каждая ячейка которых отделена от соседней в самом распространенном случае запятой. Отсюда название – CommaSeparatedValues. Существует три вида разграничения ячеек и, соответственно, три формата:
- CSV — запятой
- TSV — табуляцией
- SCSV – точкой с запятой
Открывается файл CSV ввиду своей простоты практически в любой программе, предназначенной для работы с табличными данными
Содержат они все: числа, цифры, буквы, слова, слова с цифрами. Важно следить за содержанием и не допускать разделителей внутри ячеек, это может навредить импорту данных. А также отслеживать количество разделителей. Если вы ошибетесь в количестве разделений, то на выходе получите испорченный файл, работать с которым будет сложно.
В целом, CSV представляет собой весьма удобный способ обмена данными между несколькими не связанными между собой приложений — к примеру, можно выгрузить в такой файл таблицу данных с интернет-портала при помощи функций экспорта, и в дальнейшем проводить анализ данных, строить графики, диаграммы и осуществляя многие другие операции, открыв CSV при помощи привычных программ на компьютере.
Создавать такие файлы лучше всего в Notepad++ или OpenOffice (а именно, программой Cacl, предназначенной для работы с табличными данными), чтобы избежать проблем с кодировкой. Например, если в тексте использован Unicode, а по умолчанию в Windows используется 1251, то в таблице вместо данных будут сплошные вопросительные знаки. Создать CSV можно и в программе Excel. Заполняем таблицу данными и сохраняем в csv расширении.
Обратите внимание, что первая строка файла CSV обычно содержит имена столбцов и является своего рода шапкой таблицы. Наличие такой строки при работе с CSV в том же экселе необязательно, но ее наличие значительно упрощает идентификацию данных и работу с ними.
Способ 3: LibreOffice
Бесплатный аналог Excel тоже поддерживает работу с таблицами, сохранёнными в формате CSV.
-
В главном меню программы находится список действий, которые можно произвести с её помощью. Нажмите «Открыть файл».
Важно! Регулируя параметры, не забывайте об окне предпросмотра, с помощью которого можно проверить корректность вносимых изменений. Оно видно прямо при изменении опций (пункт №3 текущей инструкции).
Excel искажает данные из CSV-файла
В некоторых случаях, при работе со сложными данными, Excel может искажать исходную информацию из CSV файла. Например, если в вашем CSV присутствуют большие числа, то они могут быть приведены к экспоненциальной форме, то есть число « 123123123123 » будет преобразовано в « 1,23123E+11 ». Также будут удалены лидирующие нули и значение « 000123123 » будет преобразовано в « 123123 ». Подобных преобразований в Excel огромное количество, поэтому после открытия CSV файла исходные данные могут быть изменены до не узнаваемости, при этом часть информации будет потеряна безвозвратно.
Чтобы избежать данной проблемы нужно следить, чтобы формат ячеек всегда соответствовал данным, которые в эти ячейки помещаются. Если ни один из стандартных форматов не подходит, то нужно использовать формат « Текстовый », в этом случае данные не будет изменяться вообще никак.
В старых версиях Excel для решения этой проблемы можно было использовать функцию « Получить данные из текстового/CSV-файла », которая доступна на вкладке « Данные ». После использования данной функции запускался « Мастер распределения текста по столбцам » в котором можно было задать формат ячеек для каждого из столбцов. Но, к сожалению, в последних версиях Excel это уже не работает.
Сейчас эту проблему можно решить, если изменить расширение CSV-файла на TXT и после этого открыть данный TXT-файл в Excel с помощью меню « Файл – Открыть ». В этом случае открывается нужный мастер и позволяет нам правильно импортировать данные.
На первом шаге здесь нужно выбрать вариант « С разделителями » и указать кодировку текста.
Дальше выбираем символ-разделитель, который отделяет данные в разных столбцах.
И выбираем подходящий формат ячеек для каждого из столбцов. Для того чтобы данные вообще не изменялись выбираем – « Текстовый ».
Для завершения работы с мастером нажмите на кнопку « Готово » и данные с CSV загрузятся в новый документ Excel.
- Как построить график в Excel
- Как закрепить область в Экселе
- Чем открыть XLS
- Чем открыть XLSX
- Как вставить формулу в Word
Создатель сайта comp-security.net, автор более 2000 статей о ремонте компьютеров, работе с программами, настройке операционных систем.
Задайте вопрос в комментариях под статьей или на странице «Задать вопрос» и вы обязательно получите ответ.
Особенности открытия с Android-устройств
CSV-данные нечасто используются в мобильной среде, но, например, они полезны для переноса контактов с памяти одного устройства на другое.
Так, скачав нужный файл, можно обновить книгу контактов Google. Кроме того, в Google-Play существуют бесплатные программы, вроде CSV Viewer или CSV File Viewer.
Приложения позволяющие просматривать, изменять и загружать из сети текстовые БД на андроиде.
Как преобразовать CSV в Excel
Если Вам нужно вытащить какую-то информацию на лист Excel из базы данных Вашей компании, то первая же идея, что приходит на ум, – экспортировать базу данных в файл CSV, а затем импортировать файл CSV в Excel.
Существует 3 способа преобразования CSV в Excel: Вы можете открыть файл с расширением .csv непосредственно в Excel, дважды кликнуть по файлу в Проводнике Windows либо импортировать CSV в Excel, как внешний источник данных. Далее я подробно расскажу об этих трёх способах и укажу преимущества и недостатки каждого из них.
Как открыть файл CSV в Excel
Даже если файл CSV создан в другой программе, Вы всегда можете открыть его как книгу Excel при помощи команды Open (Открыть).
Замечание: Открытие файла CSV в Excel не изменяет формат файла. Другими словами, файл CSV при этом не будет преобразован в файл Excel (формат .xls или .xlsx), он сохранит свой изначальный тип (.csv или .txt).
- Запустите Microsoft Excel, на вкладке Home (Главная) нажмите Open (Открыть).
- Появится диалоговое окно Open (Открытие документа), в выпадающем списке в нижнем правом углу выберите Text Files (Текстовые файлы).
- Найдите в Проводнике Windows файл CSV и откройте его, дважды кликнув по нему.
Если Вы открываете файл CSV, то Excel откроет его сразу же вставив данные в новую книгу Excel. Если Вы открываете текстовый файл (.txt), то Excel запустит Мастер импорта текстов. Подробнее об этом читайте в разделе Импортируем CSV в Excel.
Замечание: Когда Microsoft Excel открывает файл CSV, то для того, чтобы понять, как именно импортировать каждый столбец данных, он использует настройки форматирования, заданные по умолчанию.
Если данные соответствуют хотя бы одному из следующих пунктов, то воспользуйтесь Мастером импорта текстов:
- В файле CSV использованы различные разделители;
- В файле CSV использованы различные форматы даты;
- Вы преобразуете данные, среди которых есть числа с нулём в начале, и Вы хотите сохранить этот ноль;
- Вы хотите предварительно просмотреть, как будут импортированы данные из файла CSV в Excel;
- Вам хочется большей гибкости в работе.
Чтобы заставить Excel запустить Мастер импорта текстов, Вы можете либо изменить расширение фала с .csv на .txt (прежде чем открывать файл), либо импортировать CSV в Excel так, как это будет описано далее.
Как открыть файл CSV при помощи Проводника Windows
Это самый быстрый способ открыть CSV в Excel. В Проводнике Windows дважды кликните по файлу .csv, и он откроется как новая книга Excel.
Однако, этот способ сработает только в том случае, если приложение Microsoft Excel установлено как программа, заданная по умолчанию, для открытия файлов .csv. Если это так, то Вы будете видеть знакомую иконку в Проводнике Windows рядом с именем файла.
Если Excel не является программой по умолчанию, вот как Вы можете это исправить:
- Кликните правой кнопкой мыши по любому файлу .csv в Проводнике Windows и в открывшемся контекстном меню нажмите Open with (Открыть с помощью) >Choose default program (Выбрать программу).
- Выберите Excel в списке рекомендованных программ, убедитесь, что стоит галочка для параметра Always use the selected program toopen this kind of file (Всегда использовать выбранное приложение для такого типа файлов) и нажмите ОК.
Как импортировать CSV в Excel
Этим способом Вы можете импортировать данные из файла .csv в существующий или в новый лист Excel. В отличие от предыдущих двух способов, он не просто открывает CSV в Excel, а именно конвертирует формат .csv в .xlsx (если Вы используете Excel 2007, 2010 или 2013) или .xls (в версиях Excel 2003 и более ранних).
- Откройте нужный лист Excel и кликните по ячейке, куда нужно импортировать данные из файла .csv или .txt.
- На вкладке Data (Данные) в разделе Get External Data (Получение внешних данных) кликните From Text (Из текста).
- Найдите файл .csv, который требуется импортировать, выберите его и нажмите кнопку Import (Импорт), или просто дважды кликните по нужному CSV файлу.
- Откроется Мастер импорта текстов, Вам нужно просто выполнить его шаги.
Прежде, чем мы двинемся дальше, пожалуйста, посмотрите на снимок экрана ниже, на нем показан исходный файл CSV и желаемый результат в Excel. Надеюсь, это поможет Вам лучше понять, почему мы выбираем те или иные параметры настроек в последующем примере.
- Шаг 1. Выберите формат данных и номер строки, с которой нужно начинать импорт. Чаще всего выбирают Delimited (С разделителями) и со строки 1. Область предварительного просмотра в нижней части диалогового окна мастера показывает первые несколько записей импортируемого файла CSV.
- Шаг 2. На этом шаге нужно выбрать разделители и ограничитель строк. Delimiter (Разделитель) – это символ, который разделяет значения в файле CSV. Если в Вашем файле CSV использован какой-то символ, которого нет в предложенном списке, то поставьте галочку в варианте Other (Другой) и введите нужный символ. В нашем примере мы указали Tab (Знак табуляции) и Comma (Запятая), чтобы каждый товар (они разделены табуляцией) начинался с новой строки, а информация о товаре, например, ID и данные о продажах (они разделены запятыми), были помещены в разные ячейки.Text qualifier (Ограничитель строк) – это символ, в который заключены отдельные значения. Весь текст, заключённый между такими символами, например, «текст1, текст2», будет импортирован как одно значение, даже если в этом тексте содержится символ, указанный Вами как разделитель.В этом примере мы указали запятую как разделитель, и кавычки как ограничитель строк. В результате, все числа с разделителем десятичных разрядов (которым тоже в нашем случае служит запятая!) будут импортированы в одну ячейку, как это видно в области предпросмотра на рисунке ниже. Если мы не укажем кавычки как ограничитель строк, то все числа будут импортированы в разные ячейки.
Совет: Если в Вашем файле CSV используется последовательно более одной запятой или другого символа-разделителя, то поставьте галочку для параметра Treat consecutive delimiters as one (Считать последовательные разделители одним), чтобы избежать появления пустых ячеек.
Совет: Вы можете нажать кнопку Properties (Свойства), чтобы настроить дополнительные параметры, такие как обновление, разметка и форматирование для импортированных данных.
Замечание: Если Ваш файл CSV содержит численные данные или даты, Excel может преобразовать их с ошибками. Чтобы изменить формат импортированных данных, выберите столбец (столбцы), в которых возникли ошибки, кликните по ним правой кнопкой мыши и в контекстном меню выберите Format cells (Формат ячеек).
Исправить поврежденные проблемы с CSV-файлами
1. Используйте кодировку Unicode UTF-8
- Откройте файл CSV
- Нажмите Файл> Сохранить как
- Введите имя файла
- Выберите Сохранить как тип файла CSV из выпадающего
- Нажмите Инструменты> перейти к параметрам Web
- Перейдите к Кодировке в разделе Сохранить этот документ
- Выберите Юникод (UTF-8)
2. Используйте другое программное обеспечение, чтобы открыть файл CSV или Импорт и восстановление в Excel
Если числа не отображаются должным образом, не сохраняйте файл CSV. Вы можете использовать другое программное обеспечение, чтобы открыть файл CSV, или использовать шаги ниже, чтобы импортировать поврежденный файл CSV в Excel и восстановить его.
- Open Excel – новая рабочая книга
- Нажмите вкладку Данные
- Выбрать из текста в разделе «Получить внешние данные»
- Просмотрите поврежденный файл CSV
- Нажмите Импорт
- Выберите разделитель> Далее
- Выберите запятую и нажмите Далее
- Щелкните столбец с номерами> нажмите «Текст».
- Повторите шаги для всех столбцов с номерами> нажмите кнопку ОК
– СВЯЗАННО: Excel не открывает файлы, вместо этого отображается белый экран? Вы можете это исправить
Примечание. Делайте это каждый раз при открытии файла в Excel.
Используйте FileViewer Plus
Если вам нужно открыть файлы .csv (или другие файлы электронных таблиц) в Windows 10, и вы не можете этого сделать, вы всегда можете использовать сторонние решения. Мы рекомендуем FileViewer Plus, универсальный просмотрщик файлов для Windows, который может открывать и отображать более 300 различных типов файлов, включая различные типы презентаций, такие как файлы .csv.
- Получить сейчас FileViewer Plus 3
3. Конкретные решения
- Если иностранные символы повреждены или отсутствуют, используйте листы Google или приложения Open Office, Libre Office, Notepad ++ advance для восстановления поврежденного файла CSV
- Если вы получаете сообщение об ошибке импорта, говорящее «строка 1 имеет слишком много столбцов…», создайте новый файл CSV с данными в 14 столбцах, используя Excel, Notepad ++ или другие приложения для восстановления данных CSV
Если проблема связана с использованием элемента управления ASCII, специальных или дополнительных символов-разделителей, выполните следующие действия:
- Удалить пробелы в конце файла
- Исправьте лишние запятые в поврежденном файле CSV, удалив дополнительные символы-разделители, которые разделяют поля обработчика и извлекают данные файла
4. Используйте Блокнот или Excel, чтобы создать файл CSV и восстановить его
Использование блокнота
- Введите текстовые данные в файл с каждым из полей, разделенных запятой
- Разделите каждую строку новой строкой
- Сохраните файл, используя расширение .csv
Использовать электронную таблицу Excel
- Введите данные в таблицу Excel
- Нажмите Файл
- Выберите Сохранить как
- Выберите Сохранить как тип
- Выберите CSV (через запятую)
5.Восстановление с помощью функции автоматического восстановления
Эту функцию можно найти в Excel. Откройте электронную таблицу и найдите окно автоматического восстановления (обычно в левой части окна). На экране есть список, из которого вы можете выбрать файл CSV. Работает с несохраненными файлами.
– СВЯЗАННЫЕ: 11 лучших инструментов для восстановления поврежденных файлов в Windows 10
6. Восстановите, используя файл TMP
Windows обычно создает временный (TMP) файл, который может помочь вам восстановить файл CSV, если он недоступен или поврежден. Сделать это:
- Перейдите туда, где находится папка временного файла: C: UsersAppDataLocalMicrosoftOfficeUnsavedFiles .
- Поиск в файлах Excel с расширением .TMP
- Выберите правильный, проверив данные
- Скопируйте и вставьте или сохраните его в другом месте, используя расширение .CSV .
7. Восстановите поврежденный файл CSV из предыдущей версии.
Это исправление полезно, когда файлы CSV сохраняются или заменяются. Сделать это:
- Перейдите к поврежденному файлу CSV и щелкните по нему правой кнопкой мыши.
- Выберите Свойства
- Нажмите Предыдущие версии
- Выберите последнюю версию перед сохранением/заменой
- Нажмите Восстановить (убедитесь, что точки восстановления включены)
Удалось ли вам найти решение среди перечисленных здесь? Дайте нам знать, какой из них работал для вас, оставив комментарий в разделе ниже.
Видео инструкция
Несмотря на популярность формата при открытии этих данных в Excel начинаются проблемы — Excel изменяет содержимое ячеек еще до того, как вы его увидите! Он обрезает нули у артикулов, превращает штрих-коды и числовые данные в даты, обрезает длину описаний и ведет себя как сырой продукт из-за автоматического форматирования данных! И самое печальное в этой истории — это никак не отключить. Это фундаментальная неграмотность разработчиков, ведь данные должны открываться как есть и без нашего разрешения/действия меняться не должны. И вроде бы в программе есть импорт CSV, где можно выбрать кодировку и разделители, но файлы открываются все равно криво и исправления мы вряд ли дождемся.
Если Excel убирает нули артикулов и цифр и искажает данные CSV
Из-за недостаточного внимания к этой проблеме пришлось решать ее самостоятельно. Хотя можно было добавить в настройки Excel отключение функции автоматического форматирования. Причем по умолчанию автоформатирование должно быть отключено т.к. мне сложно представить мазохиста, которому это нужно.
Excel и utf-8: файл CSV открывается с каракулями, кракозябрами и иероглифами
Это очень частая проблема открытия CSV в Excel. Проблема в том, что эксель работает только с кириллической кодировкой Windows-1251. В некоторых CMS, например в CS-Cart экспорт производится только в кодировке UTF-8, из за чего работа с файлом в Excel становится невозможной. Чтобы постоянно не менять кодировку файла «на коленках» и исключить вероятность ошибки по невнимательности при работе с большим количеством файлов мы обновили надстройку, приложенную ниже. Теперь перед импортом CSV файла вы можете выбрать кодировку.
Функции надстройки:
- Возможность выбирать разделители
- Возможность выбора кодировки открываемого файла
- Открытие ячеек в текстовом формате, без искажения данных, каракулей и иероглифов
- Контроль правильности разбивки ячеек
Скачать надстройку — FIX v5.2
Установка очень простая — открываем файл, разрешаем редактирование файла и кликаем по большой красной кнопке «Установить надстройку».
После этого в верхней части программы Excel появится вкладка «Надстройки», в которой будет 3 пункта — для открытия CSV файла и для смены кодировки и разделителей открываемого CSV файла.
Обратите внимание что все CSV файлы нужно открывать только через кнопку «Открыть CSV».
Как лучше всего открывать большие текстовые и CSV-файлы?
В наш век больших данных нередко встречаются текстовые файлы размером в гигабайты, которые может быть трудно даже просмотреть с помощью встроенных инструментов, таких как Блокнот или MS Excel. Чтобы иметь возможность открывать такие большие файлы CSV, вам необходимо загрузить и использовать стороннее приложение.
Если все, что вам нужно, — это просматривать такие файлы, то программа просмотра больших текстовых файлов — лучший выбор для вас. Для их фактического редактирования вы можете попробовать многофункциональный текстовый редактор, такой как Emacs, или воспользоваться дополнительным инструментом, например CSV Explorer.
Такие методы, как разделение файла CSV или его импорт в базу данных, включают слишком много шагов. Вам лучше получить платную лицензию на специальный инструмент премиум-класса, если вы обнаружите, что много работаете с огромными текстовыми файлами.