Как работать с CSV-файлами
Обновлено: 21.11.2024
CSV означает значения, разделенные запятыми, когда данные хранятся в простом текстовом файле, разделенном запятыми. Вы узнаете, что имеете дело с файлами CSV, если расширение файла .csv, например myData.csv (это также зависит от того, есть ли у вас настройки ОС, чтобы вы могли видеть, какой тип файла) или если вы открываете файл в текстовом редакторе и обратите внимание, что данные разделены запятой. Если вы используете Excel достаточно долго, работа с файлами CSV неизбежна.
Вот простой пример того, как выглядит CSV-файл, если открыть его в текстовом редакторе (предпочтительно в Sublime Text, самом лучшем текстовом редакторе).
Когда вы открываете этот файл в Excel, данные переносятся в ячейки и разделяются запятой, что выглядит примерно так:
Имя | Возраст |
---|---|
Кайл | 25 |
Лесли | 30 |
Это основные сведения о CSV-файлах, но есть и кое-что еще, о чем мы вскоре расскажем.
Работа с CSV-файлами
Работать с CSV-файлами довольно просто. Однако в зависимости от вашего рабочего процесса могут быть некоторые предостережения, на которые вы, возможно, захотите обратить внимание.
Открытие CSV-файла
Если у вас есть файл CSV, вы можете без особых проблем открыть его в Excel. Просто откройте Excel, нажмите «Открыть» и найдите файл CSV для работы (или щелкните файл CSV правой кнопкой мыши и выберите «Открыть в Excel»). Открыв файл, вы заметите, что данные представляют собой обычный текст, помещенный в разные ячейки.
Сохранение файла CSV
Если вы хотите сохранить текущую книгу в файл CSV, вам нужно использовать «Файл» -> «Сохранить как…» и выбрать файл CSV. Чаще всего вы получите это предупреждение:
Excel пытается сказать здесь, что файлы CSV вообще не сохраняют никакого форматирования. Ширина столбцов, стили шрифтов, цвета и т. д. не будут сохранены. Просто ваши старые данные будут сохранены в файле с разделителями-запятыми.
Обратите внимание, что даже после сохранения Excel по-прежнему будет отображать форматы, которые у вас были, поэтому не обманывайтесь этим и думайте, что когда вы снова откроете книгу, ваши форматы все еще будут там. Их не будет.
Даже после того, как вы откроете CSV-файл в Excel, если вы вообще примените какое-либо форматирование, например отрегулируете ширину столбцов, чтобы увидеть данные, Excel все равно предупредит вас о том, что вы не можете сохранить добавленные вами форматы. . Вы получите предупреждение вроде этого:
Имейте в виду, что ваши форматы никогда не будут сохранены в файлах CSV.
Эта статья поможет вам? Если да, поддержите меня чашечкой кофе ☕️
Почему CSV-файлы?
Файлы CSV используются для обмена данными между различными приложениями. Допустим, у вас есть приложение базы данных, и вы хотите экспортировать данные в файл. Если вы хотите экспортировать его в файл Excel, приложение базы данных должно поддерживать экспорт в файлы XLS*.
Однако, поскольку формат файла CSV чрезвычайно прост и легковесен (намного проще, чем файлы XLS*), его легче поддерживать различным приложениям. В его основном использовании у вас есть строка текста, где каждый столбец данных разделен запятой. Вот и все. И из-за этой простоты разработчикам легко создавать функции экспорта/импорта с файлами CSV для передачи данных между приложениями вместо более сложных форматов файлов.
Несмотря на простоту формата, он еще не является интернет-стандартом, хотя есть предложения по его созданию (кстати, это самый короткий RFC, который я когда-либо видел, что довольно приятно). Есть некоторые проблемы, которые необходимо решить с файлами CSV, и некоторые приложения решают эту проблему по-разному.
Например, что если в ваших данных есть запятая? Как вы это отделяете? Как насчет разрывов строк (например, Alt+Enter)?
Преодоление сложности данных
Давайте обсудим, как решить следующие две проблемы с CSV-файлами: запятые в данных и обработка новых строк.
Что делать, если в данных есть запятые?
Представьте, что у вас есть эти данные:
Книга | Описание |
---|---|
Звездные войны | Давным-давно в далекой-далекой галактике… |
Какого цвета твой парашют? | На сегодняшнем сложном рынке труда время- проверенный совет Какого цвета ваш парашют? нужен как никогда раньше. |
Если вы возьмете эти данные и поместите их в файл CSV, это будет выглядеть так:
Однако, если вы импортируете это в Excel, это будет выглядеть так:
Как видите, хотя нам нужны данные только в столбцах A и B, некоторые данные вошли в столбец C. Это связано с наличием запятых в данных. Так как же нам обойти это?
Общепринятым решением является заключение данных в кавычки.
Вот как новый файл данных выглядит в текстовом редакторе, где элементы данных, содержащие запятую, заключены в кавычки:
И когда вы откроете его в Excel:
Ну вот. Теперь данные находятся только в столбцах A и B, как мы и предполагали.
Что делать, если в одной из строк есть новая строка?
Допустим, у вас есть новая строка данных в файле Excel, которая выглядит примерно так:
Вы видите новую строку в ячейке B2, но как она будет выглядеть в CSV-файле?
Если вы сохраните книгу в формате CSV, а затем откроете этот файл в текстовом редакторе, вы увидите, что произойдет:
Может быть трудно сказать, но в основном в этом примере снова используются кавычки, но на этот раз это позволяет символу новой строки быть в данных и охватывать две строки.
Что делать, если в моих данных есть кавычки?
В этот момент у вас может возникнуть вопрос: «Что произойдет, если в моих данных будет цитата?» Это хороший вопрос, и ответ на него может быть вам знаком, если вам когда-либо приходилось ставить кавычки в выводе формулы.
Если ваши данные еще не заключены в кавычки, вы можете просто добавить кавычки. Однако если вы заключаете данные в кавычки из-за того, что в них есть запятая, вам нужно «избежать» кавычки, добавив еще одну кавычку.
Вот несколько примеров:
А вот результат в Excel:
Давайте разберем каждый пункт:
Это только заголовки. Ничего страшного.
Первая строка данных. Во втором столбце «цитата» находится внутри данных, и Excel понимает, что интерпретирует ее буквально при обработке файла. Вот почему вы увидите, что цитата действительно попадает в ячейку в ячейке B2.
Здесь, во втором столбце, вы увидите, что запятая в кавычках фактически разделяет данные на третий столбец. Это связано с тем, что все поле данных не было заключено в кавычки, поэтому Excel интерпретировал это как два разных столбца данных, а не один.
Здесь мы показываем, как правильно сделать то, что мы пытались сделать во второй строке данных. Мы заключили второй столбец в кавычки и избежали нужных нам кавычек в наших данных, добавив дополнительную кавычку. Excel интерпретировал это так, как мы хотели, имея только два столбца данных и кавычки внутри данных.
В этом последнем примере показано, как добавить цитату во второй столбец, в котором также есть запятая. Поэтому нам нужно добавить инкапсулирующие кавычки для запятой, чтобы Excel не разделял данные, и нам также нужно добавить экранирующую кавычку, чтобы Excel не думал, что данные закончены до слова «цитата».< /p>
Разные разделители в файлах CSV
Файлы CSV не всегда должны использовать запятую для разделения значений в данных. Многие приложения позволяют использовать набор часто используемых разделителей или указать свой собственный. Однако в одном CSV-файле не может быть нескольких разделителей. Как только вы выберете разделитель, он станет разделителем для всего файла.
Несмотря на то, что существуют приложения, позволяющие указать другой разделитель символов, в Excel нет встроенного способа изменить разделитель.Однако вы можете изменить разделитель списка по умолчанию в вашей ОС, что будет работать, но я думаю, что нам придется сохранить это для другого поста.
Я видел следующие типичные символы для разделителя в других приложениях:
Мне больше всего нравится использовать трубку | персонаж. Его легко увидеть, и он почти никогда не используется в данных (если только вы не сохраняете фрагменты команд PowerShell), что делает его уникальным выбором для сохранения в CSV.
Если вы собираетесь использовать для разделения значений другой символ, отличный от запятой, необходимо убедиться, что в начале файла есть важная строка. Например, предположим, что у нас есть следующие данные:
Разделитель явно труба | персонаж. Но если бы вы открыли это в Excel, это выглядело бы так:
Обратите внимание, что все данные находятся в столбце А? Это связано с тем, что Excel не находит запятую для разделения значений, которая является разделителем по умолчанию. Чтобы указать Excel использовать другой разделитель, вы должны добавить специальную строку в начале файла:
Добавив строку:
Мы указываем Excel использовать вертикальную черту | символ в качестве разделителя (sep = разделитель).
Теперь, когда мы открываем файл, он выглядит так:
Поэтому, если вы когда-нибудь столкнетесь с проблемой при открытии CSV-файла, проверьте файл в текстовом редакторе и посмотрите, есть ли там эта специальная строка.
Подведение итогов
Надеюсь, этот пост поможет вам лучше понять, как работают файлы CSV, почему они полезны и как вы можете использовать их для своих нужд.
Если вы хотите узнать больше или думаете, что я что-то упустил, дайте мне знать в комментариях ниже!
Вау, вы прочитали всю статью! Вы знаете, люди, которые заходят так далеко, являются настоящими учениками. И очевидно, вы цените обучение. Хотите узнать больше об Excel? Пожалуйста, поддержите меня, купив мне кофе (чтобы написать эти статьи, нужно много кофе!).
В этой статье объясняется, как загружать и анализировать файл CSV в Python.
Во-первых, что такое CSV?
CSV (значения, разделенные запятыми) – это простой формат файлов, используемый для хранения табличных данных, таких как электронные таблицы или базы данных. В файле CSV табличные данные (числа и текст) хранятся в виде обычного текста. Каждая строка файла представляет собой запись данных. Каждая запись состоит из одного или нескольких полей, разделенных запятыми. Использование запятой в качестве разделителя полей является источником названия для этого формата файла.
Для работы с CSV-файлами в Python существует встроенный модуль csv.
Чтение файла CSV
Питон
Вывод вышеуказанной программы выглядит следующим образом:
- Здесь мы сначала открываем файл CSV в режиме ЧТЕНИЯ. Файловый объект называется csvfile. Файловый объект преобразуется в объект csv.reader. Мы сохраняем объект csv.reader как csvreader.
- csvreader — это итерируемый объект. Следовательно, метод .next() возвращает текущую строку и переводит итератор на следующую строку. Поскольку первая строка нашего CSV-файла содержит заголовки (или имена полей), мы сохраняем их в списке с именем fields.
- Теперь мы перебираем оставшиеся строки, используя цикл for. Каждая строка добавляется в список, называемый строками. Если вы попытаетесь напечатать каждую строку, можно обнаружить, что строка — это не что иное, как список, содержащий все значения поля.
- csvreader.line_num — это не что иное, как счетчик, который возвращает количество итерированных строк.
Запись в файл CSV
Питон
- поля и строки уже определены. fields — это список, содержащий имена всех полей. rows — это список списков. Каждая строка представляет собой список, содержащий значения полей этой строки.
- Здесь мы сначала открываем файл CSV в режиме записи. Файловый объект называется csvfile. Файловый объект преобразуется в объект csv.writer. Мы сохраняем объект csv.writer как csvwriter.
- Теперь мы используем метод writerow для записи первой строки, которая представляет собой не что иное, как имена полей.
- Мы используем метод writerows для одновременной записи нескольких строк.
Запись словаря в CSV-файл
Питон
- Здесь объект файла (csvfile) преобразуется в объект DictWriter.
Здесь мы указываем имена полей в качестве аргумента.- Метод writeheader просто записывает первую строку вашего CSV-файла, используя заранее заданные имена полей.
- Метод Writerows просто записывает все строки, но в каждой строке он записывает только значения (не ключи).
В итоге наш CSV-файл выглядит так:
- В модулях csv может быть задан необязательный параметр dialect, который используется для определения набора параметров, специфичных для конкретного формата CSV. По умолчанию модуль csv использует диалект excel, что делает их совместимыми с электронными таблицами Excel. Вы можете определить свой собственный диалект, используя метод register_dialect.
Вот пример:
Теперь, определяя объект csv.reader или csv.writer, мы можем указать диалект следующим образом:
- Теперь представим себе, что CSV-файл в обычном текстовом виде выглядит следующим образом:
- Мы заметили, что разделителем является не запятая, а точка с запятой. Кроме того, строки разделяются двумя символами новой строки вместо одной. В таких случаях мы можем указать разделитель и признак конца строки следующим образом:
Итак, это было краткое, но четкое обсуждение того, как загружать и анализировать файлы CSV в программе Python.
Несмотря на свою простоту (или, возможно, из-за нее), файлы CSV являются одним из самых популярных и широко используемых форматов файлов. Но что такое CSV-файл и как с ним работать? Мы рассмотрим все ответы ниже.
Содержание
Интегрируйте свое хранилище данных сегодня
Превратите свое хранилище данных в платформу данных, на которой работают все системы принятия решений и операционные системы компании.
7-дневная пробная версия • Кредитная карта не требуется
Что такое CSV-файл?
Файл CSV – это обычный текстовый файл, в котором хранятся данные с разделителями-запятыми в табличном формате. Аббревиатура CSV означает "значения, разделенные запятыми".
Имя файла CSV всегда должно включать расширение ".csv". Структура файлов CSV следующая:
- Первая (необязательная) строка в CSV-файле — это «заголовок» и содержит имена столбцов файла.
- Остальные строки в файле состоят из записей, по одной на строку. Каждая запись имеет одно или несколько полей данных, разделенных запятыми. (Это означает, что количество запятых в каждой строке должно быть на 1 меньше, чем количество столбцов.)
- Строка разбивает отдельные записи, т. е. с помощью символа новой строки "\n" (который обычно невидим при просмотре файла).
Ниже приведен пример простой файловой структуры CSV, содержащей заголовок и две записи о сотрудниках:
Файлы CSV представляют собой подкласс текстовых файлов с разделителями, в которых символ запятой "," выступает в качестве разделителя. Другие типы текстовых файлов с разделителями могут использовать в качестве разделителя другие символы (например, символы табуляции, пробелы, точки с запятой).
Зачем использовать CSV?
- Легко читать. В отличие от некоторых других форматов хранения данных, файлы CSV легко читаются людьми, поскольку они хранят информацию в виде обычного текста.
- Легкий. Эти файлы занимают мало места. Единственное дополнительное пространство, которое они занимают, — это строка заголовка и запятые между каждым полем данных.
- Портативность и гибкость. Как мы обсудим позже, файлы CSV легко импортировать во многие другие программные приложения.
Понравилась эта статья?
Еженедельно получайте отличный контент с новостной рассылкой Integrate.io!
Существует ли стандарт формата файлов CSV?
Определение файла CSV, которое мы дали выше, в основном охватывает все, что вам нужно знать о файлах CSV, но существует ли также формальное определение стандарта формата файлов CSV?
Наиболее близким к стандарту CSV является RFC 4180, написанный в 2005 году Инженерной группой Интернета (IETF). Однако этот документ предназначен только для информационных целей и содержит заявление об отказе от ответственности: «Этот меморандум содержит информацию для интернет-сообщества. Он не определяет какой-либо интернет-стандарт».
Ниже приведены некоторые особенности и подробности формата файлов CSV, описанные в RFC 4180, о которых вам, возможно, будет интересно узнать:
- Разрыв строки для последней строки (записи) в CSV-файле необязателен.
- Вы также можете дополнительно использовать двойные кавычки (например, символ "), чтобы заключить каждое поле в записи. Если двойные кавычки не заключают поля в двойные кавычки, поля не должны содержать кавычек.
- Поля, содержащие запятые, должны заключаться в двойные кавычки. Например: Смит, Джон, "Пеория, Иллинойс".
Несмотря на то, что RFC 4180 содержит четко определенные правила для CSV-файлов, нет никакой гарантии, что какой-либо конкретный файл с расширением ".csv" будет соответствовать этим правилам. Например, Microsoft Excel использует разделители с запятой для CSV-файлов в европейских странах, которые используют запятые там, где англоговорящие люди используют десятичные точки.
Как работать с CSV
Простота формата упрощает работу с CSV-файлами. Вы можете использовать текстовый редактор, такой как Блокнот, или веб-браузер, чтобы прочитать их, и их легко импортировать в базу данных или программу для работы с электронными таблицами (например, Microsoft Excel, Google Sheets или OpenOffice Calc). Вы также можете преобразовать CSV в SQL, если хотите сохранить его в реляционной базе данных.
Большинство текстовых редакторов и текстовых процессоров могут сохранять файл в формате CSV с помощью параметра "Сохранить как". Это делает файлы CSV совместимыми и взаимодействующими с файлами других основных типов, таких как XLS, TXT и HTML.
Если вы проводите какое-то время с приложениями для работы с электронными таблицами, такими как Microsoft Excel или Google Sheets, или даже импортируете определенные типы данных в Microsoft Outlook, вы неизбежно столкнетесь с файлом значений, разделенных запятыми, обычно известным как CSV.
Файл CSV – это простой текстовый файл, который можно открыть в самых разных программах, в том числе в любой программе, которая работает с обычным текстом, например в приложении "Блокнот"; что делает CSV-файл уникальным, так это то, как организовано его содержимое.
Что нужно знать о файле CSV
Файл CSV, как следует из названия, обычно разделяет информацию запятыми. Это способ обмена структурированной информацией, например содержимым электронной таблицы, между программами, которые не всегда могут общаться друг с другом напрямую.
Если две программы могут открыть CSV-файл, они могут обмениваться данными. Например, вы можете сохранить контактную информацию из Microsoft Excel в виде файла CSV и импортировать ее в адресную книгу Microsoft Outlook.
Типичный CSV-файл выглядит следующим образом: каждая строка содержит одну и ту же последовательность данных, поэтому любая программа, которой необходимо его прочитать, знает, чего ожидать:
Несмотря на название, в формате CSV не обязательно полагаться на запятые в качестве разделителя между фрагментами информации. Этот разделитель, называемый разделителем, может быть точкой с запятой, пробелом или другим символом, хотя чаще всего используется запятая.
Как открыть CSV-файл в Microsoft Excel
Поскольку файлы CSV очень просты, большинство приложений для работы с электронными таблицами могут открывать и сохранять файлы CSV.
Вот как это сделать в Excel:
- На ленте Excel перейдите на вкладку "Файл" и нажмите "Открыть".
- Нажмите «Обзор» и в окне «Проводник» щелкните раскрывающееся меню справа от поля «Имя файла». Обычно по умолчанию используется значение «Все файлы Excel». Измените его на «Все файлы».
- Перейдите к папке, где хранится CSV-файл, и выберите его.
Совет. Вы также можете легко сохранить электронную таблицу в виде файла CSV, чтобы импортировать ее в другую программу. Сохраните файл как обычно — выберите «Файл» и «Сохранить как», но затем выберите «CSV UTF-8 (с разделителями-запятыми) (*.csv)» в меню типа файла.
Как открыть CSV-файл в Google Таблицах
Открыть CSV-файл в Google Таблицах намного проще, поскольку Таблицы автоматически устанавливают все параметры во время импорта.
- В Google Таблицах нажмите "Файл", а затем "Открыть".
- Найдите файл CSV и выберите его. При необходимости нажмите "Загрузить", а затем перетащите его с компьютера.
- Файл CSV будет автоматически правильно отформатирован и появится в Таблицах.
Как открыть CSV в текстовом редакторе
В отличие от электронных таблиц, текстовый редактор не будет автоматически форматировать или структурировать CSV-файл за вас. Вместо этого вы просто увидите данные, разделенные запятой или другим разделителем. Обычно это не эстетично, но это простой способ увидеть содержимое файла.
- Откройте текстовый редактор, например Блокнот Windows или TextEdit.
- Нажмите "Файл", а затем "Открыть".
- В диалоговом окне "Открыть файл" щелкните раскрывающееся меню справа от поля "Имя файла". Если в настоящее время установлено значение «Текстовые документы», измените его на «Все файлы».
- Найдите CSV-файл и выберите его.
И, конечно же, после того как вы импортировали файл CSV в любую из этих программ, вы можете редактировать данные так же, как и любой другой файл.
Дэйв Джонсон — журналист, специализирующийся на технологиях. Он пишет о потребительских технологиях и о том, как индустрия превращает спекулятивный мир научной фантастики в реальную жизнь. Дэйв вырос в Нью-Джерси, прежде чем поступить в ВВС, чтобы управлять спутниками, преподавать космические операции и планировать космические запуски. Затем он провел восемь лет в качестве руководителя отдела контента в группе Windows в Microsoft.Как фотограф Дэйв фотографировал волков в их естественной среде обитания; он также инструктор по подводному плаванию и соведущий нескольких подкастов. Дэйв является автором более двух десятков книг и участвовал во многих сайтах и публикациях, включая CNET, Forbes, PC World, How To Geek и Insider.
Читайте также:
- Метод writeheader просто записывает первую строку вашего CSV-файла, используя заранее заданные имена полей.
- Теперь мы используем метод writerow для записи первой строки, которая представляет собой не что иное, как имена полей.
- Здесь мы сначала открываем файл CSV в режиме записи. Файловый объект называется csvfile. Файловый объект преобразуется в объект csv.writer. Мы сохраняем объект csv.writer как csvwriter.
- Теперь мы перебираем оставшиеся строки, используя цикл for. Каждая строка добавляется в список, называемый строками. Если вы попытаетесь напечатать каждую строку, можно обнаружить, что строка — это не что иное, как список, содержащий все значения поля.
- csvreader — это итерируемый объект. Следовательно, метод .next() возвращает текущую строку и переводит итератор на следующую строку. Поскольку первая строка нашего CSV-файла содержит заголовки (или имена полей), мы сохраняем их в списке с именем fields.