Как правильно открыть csv файл в excel

Устранение неполадок

Частые проблемы с открытием CSV

Microsoft Excel Исчез

При двойном щелчке CSV-файла может появиться диалоговое окно операционной системы с сообщением о том, что он «Не удается открыть этот тип файла». Когда это происходит, это обычно связано с отсутствием Microsoft Excel в %%os%%. Поскольку ваша операционная система не знает, что делать с этим файлом, вы не сможете открыть его двойным щелчком мыши.

Наконечник: Если у вас не установлен Microsoft Excel, и вы знаете другую программу, чтобы открыть файл CSV, вы можете попробовать открыть его, выбрав из программ, перечисленных в разделе «Показать приложения».

Неверная версия Microsoft Excel

Иногда может быть установлена устаревшая версия Microsoft Excel, несовместимая с типом Comma Separated Values File. Рекомендуется установить последнюю версию Microsoft Excel из Microsoft Corporation. Эта проблема в основном возникает, когда файл Comma Separated Values File был создан более новой версией Microsoft Excel, чем на компьютере.

Совет . Найдите подсказки о правильной версии программного обеспечения, щелкнув правой кнопкой мыши CSV-файл и выбрав «Свойства».

Сводка. Наличие правильной версии Microsoft Excel на компьютере может вызвать проблемы с открытием CSV-файлов.

В большинстве случаев установка правильной версии Microsoft Excel решит вашу проблему. Если у вас по-прежнему возникают проблемы с открытием файлов CSV, могут возникнуть другие проблемы с компьютером. К числу этих вопросов относятся:

Чтение файлов CSV

Python предоставляет различные функции для чтения файла CSV. Опишем несколько методов для чтения.

Использование функции csv.reader()

В Python модуль csv.reader() используется для чтения файла csv. Он берет каждую строку файла и составляет список всех столбцов.

Мы взяли текстовый файл с именем python.txt, в котором есть разделитель по умолчанию(,) со следующими данными:

 
name,department,birthday month   
Parker,Accounting,November   
Smith,IT,October   

Пример:

 
import csv   
with open('python.csv') as csv_file:   
    csv_reader = csv.reader(csv_file, delimiter=',')   
    line_count = 0   
    for row in csv_reader:   
        if line_count == 0:   
            print(f'Column names are {", ".join(row)}')   
            line_count += 1   

Выход:

Column names are name, department, birthday month 
  Parker works in the Accounting department, and was born in November. 
  Smith works in the IT department, and was born in October. 
Processed 3 lines. 

В приведенном выше коде мы открыли python.csv с помощью функции open(). Мы использовали функцию csv.reader() для чтения файла, который возвращает итеративный объект чтения. Объект чтения состоял из данных, и мы повторили цикл, используя цикл for, чтобы распечатать содержимое каждой строки.

Другие способы преобразования файлов Excel в CSV

Описанные выше способы экспорта данных из Excel в CSV (UTF-8 и UTF-16) универсальны, т.е. подойдут для работы с любыми специальными символами и в любой версии Excel от 2003 до 2013.

Существует множество других способов преобразования данных из формата Excel в CSV. В отличие от показанных выше решений, эти способы не будут давать в результате чистый UTF-8 файл (это не касается , который умеет экспортировать файлы Excel в несколько вариантов кодировки UTF). Но в большинстве случаев получившийся файл будет содержать правильный набор символов, который далее можно безболезненно преобразовать в формат UTF-8 при помощи любого текстового редактора.

Преобразуем файл Excel в CSV при помощи Таблиц Google

Как оказалось, можно очень просто преобразовать файл Excel в CSV при помощи Таблиц Google. При условии, что на Вашем компьютере уже установлен , выполните следующие 5 простых шагов:

  1. В Google Drive нажмите кнопку Создать (Create) и выберите Таблица (Spreadsheet).
  2. В меню Файл (File) нажмите Импорт (Import).
  3. Кликните Загрузка (Upload) и выберите файл Excel для загрузки со своего компьютера.
  4. В диалоговом окне Импорт файла (Import file) выберите Заменить таблицу (Replace spreadsheet) и нажмите Импорт (Import).

Совет: Если файл Excel относительно небольшой, то для экономии времени можно перенести из него данные в таблицу Google при помощи копирования / вставки.

  1. В меню Файл (File) нажмите Скачать как (Download as), выберите тип файла CSV – файл будет сохранён на компьютере.

В завершение откройте созданный CSV-файл в любом текстовом редакторе, чтобы убедиться, что все символы сохранены правильно. К сожалению, файлы CSV, созданные таким способом, не всегда правильно отображаются в Excel.

Сохраняем файл .xlsx как .xls и затем преобразуем в файл CSV

Для этого способа не требуется каких-либо дополнительных комментариев, так как из названия уже всё ясно.

Это решение я нашёл на одном из форумов, посвящённых Excel, уже не помню, на каком именно. Честно говоря, я никогда не использовал этот способ, но, по отзывам множества пользователей, некоторые специальные символы теряются, если сохранять непосредственно из .xlsx в .csv, но остаются, если сначала .xlsx сохранить как .xls, и затем как .csv, как мы .

Так или иначе, попробуйте сами такой способ создания файлов CSV из Excel, и если получится, то это будет хорошая экономия времени.

Сохраняем файл Excel как CSV при помощи OpenOffice

OpenOffice – это пакет приложений с открытым исходным кодом, включает в себя приложение для работы с таблицами, которое отлично справляется с задачей экспорта данных из формата Excel в CSV. На самом деле, это приложение предоставляет доступ к большему числу параметров при преобразовании таблиц в файлы CSV (кодировка, разделители и так далее), чем Excel и Google Sheets вместе взятые.

Просто открываем файл Excel в OpenOffice Calc, нажимаем Файл > Сохранить как (File > Save as) и выбираем тип файла Текст CSV (Text CSV).

На следующем шаге предлагается выбрать значения параметров Кодировка (Character sets) и Разделитель поля (Field delimiter). Разумеется, если мы хотим создать файл CSV UTF-8 с запятыми в качестве разделителей, то выбираем UTF-8 и вписываем запятую (,) в соответствующих полях. Параметр Разделитель текста (Text delimiter) обычно оставляют без изменения – кавычки («). Далее нажимаем ОК.

Таким же образом для быстрого и безболезненного преобразования из Excel в CSV можно использовать ещё одно приложение – LibreOffice. Согласитесь, было бы здорово, если бы Microsoft Excel предоставил возможность так же настраивать параметры при создании файлов CSV.

Диалекты и параметры форматирования¶

Для упрощения задания формата входных и выходных записей, конкретные параметры
форматирования группируются в диалекты. Диалект — это подкласс
класса, имеющий набор специфических методов и единственный
метод. Создавая объекты или , программист может
определить строку или подкласс класса как параметр
диалекта. В дополнение, или вместо, параметра dialect, программист может
также определить отдельные параметры форматирования, у которых есть те же имена
как атрибуты, определенный ниже для класса .

Диалекты поддерживают следующие атрибуты:

Односимвольная строка, используемая для отделения полей. По
умолчанию .

Управляет тем, как сущности quotechar, появляющиеся внутри поля, должены
самостоятельно закавычиваться. Когда , символ удваивается. Когда
, escapechar — используется как префикс к quotechar. По
умолчанию он .

При выводе, если doublequote и не установлен escapechar,
поднимается , если quotechar найден в поле.

Односимвольная строка используемая writer, чтобы экранировать delimiter,
если quoting установлен в и quotechar, если doublequote —
. При чтении escapechar удаляет какое-либо особое значение со
следующего символа. По умолчанию используется значение , которое
отключает экранирование.

Используемая строка используемая для завершения строки, произведенная . По
умолчанию используется значение .

Примечание

В жёсто закодированы опознавательные символы или
как конец строки и игнорирует lineterminator. Это поведение может измениться в
будущем.

Одиносимвольная строка используемая для заковычивания полей, содержащих
специальные символы, такие как delimiter или quotechar, или которые содержат
символы новой строки. По умолчанию используется значение .

Контролирует, когда кавычки должны генерироваться writer и распознаваться
reader. Он может принимать любые константы (см. раздел
) и по умолчанию имеет значение .

При , пробелы непосредственно следующие за delimiter, игнорируются.
Значение по умолчанию — .

Импорт данных из файлов с разделителями-запятыми

Элементы конфигурации, содержащиеся в файле значений с разделителями-запятыми (.csv), могут быть импортированы в базу данных Service Manager с помощью функции импорта из CSV-файла. Эта функция позволяет выполнять массовый импорт экземпляров любого типа класса или проекции, определенного в базе данных Service Manager. Эта функция может использоваться для следующих операций.

  • Создание экземпляров элемента конфигурации или рабочего элемента из данных, хранящихся в табличном формате.

  • Массовое изменение существующих экземпляров базы данных.

  • Заполнение Service Manager базы данных с помощью данных, экспортированных из внешней базы данных.

  • Сокращение объема данных, вводимых в формы при одновременном создании большого количества экземпляров класса.

Примечание

Импорт множества сложных элементов (например, 5 000 проекций компьютеров) может занять час или более. В течение этого времени Service Manager продолжит функционировать.

Для импорта набора экземпляров с помощью функции «Импорт из CSV-файла» требуются два файла.

  1. Файл данных, состоящий из последовательности экземпляров объектов, разделенных запятыми. Файл данных должен иметь расширение CSV.

  2. Файл форматирования, который указывает тип класса или тип проекции для экземпляров, присутствующих в файле данных. Каждый экземпляр в файле данных относится к этому виду. В файле форматирования также указывается (1) подмножество свойств, а для проекций указываются компоненты. Они импортируются для указанного типа. Кроме того, указывается (2) порядок, в котором эти свойства следуют в виде столбцов в связанном в файле данных. Файл форматирования должен иметь расширение XML, а его имя должно совпадать с именем CSV-файла, который описывает файл форматирования.

Файлы CSV

Последнее обновление: 29.04.2017

Одним из распространенных файловых форматов, которые хранят в удобном виде информацию, является формат csv.
Каждая строка в файле csv представляет отдельную запись или строку, которая состоит из отдельных столбцов, разделенных запятыми. Собственно поэтому
формат и называется Comma Separated Values. Но хотя формат csv — это формат текстовых файлов, Python для упрощения работы с ним
предоставляет специальный встроенный модуль csv.

Рассмотрим работу модуля на примере:

import csv

FILENAME = "users.csv"

users = ,
    ,
    
]

with open(FILENAME, "w", newline="") as file:
    writer = csv.writer(file)
    writer.writerows(users)
	

with open(FILENAME, "a", newline="") as file:
	user = 
    writer = csv.writer(file)
    writer.writerow(user)

В файл записывается двухмерный список — фактически таблица, где каждая строка представляет одного пользователя. А каждый пользователь
содержит два поля — имя и возраст. То есть фактически таблица из трех строк и двух столбцов.

При открытии файла на запись в качестве третьего параметра указывается значение — пустая строка позволяет корректно считывать
строки из файла вне зависимости от операционной системы.

Для записи нам надо получить объект writer, который возвращается функцией . В эту функцию передается открытый файл.
А собственно запись производится с помощью метода Этот метод принимает набор строк. В нашем случае это двухмерный список.

Если необходимо добавить одну запись, которая представляет собой одномерный список, например, , то в этом случае можно вызвать метод
writer.writerow(user)

В итоге после выполнения скрипта в той же папке окажется файл users.csv, который будет иметь следующее содержимое:

Tom,28
Alice,23
Bob,34
Sam,31

Для чтения из файла нам наоборот нужно создать объект reader:

import csv

FILENAME = "users.csv"

with open(FILENAME, "r", newline="") as file:
    reader = csv.reader(file)
    for row in reader:
        print(row, " - ", row)

При получении объекта reader мы можем в цикле перебрать все его строки:

Tom  -  28
Alice  -  23
Bob  -  34
Sam - 31

Работа со словарями

В примере выше каждая запись или строка представляла собой отдельный список, например, . Но кроме того, модуль csv имеет
специальные дополнительные возможности для работы со словарями. В частности, функция csv.DictWriter() возвращает объект writer,
который позволяет записывать в файл. А функция csv.DictReader() возвращает объект reader для чтения из файла. Например:

import csv

FILENAME = "users.csv"

users = 

with open(FILENAME, "w", newline="") as file:
    columns = 
    writer = csv.DictWriter(file, fieldnames=columns)
    writer.writeheader()
	
    # запись нескольких строк
    writer.writerows(users)
    
    user = {"name" : "Sam", "age": 41}
    # запись одной строки
    writer.writerow(user)

with open(FILENAME, "r", newline="") as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row, "-", row)

Запись строк также производится с помощью методов и . Но теперь каждая строка представляет собой отдельный словарь,
и кроме того, производится запись и заголовков столбцов с помощью метода writeheader(), а в метод csv.DictWriter в качестве второго параметра
передается набор столбцов.

При чтении строк, используя названия столбцов, мы можем обратиться к отдельным значениям внутри строки: .

НазадВперед

Как открыть формат CSV на смартфоне

Подобные таблицы можно вполне успешно просматривать и на смартфонах под управлением Android или iOS. Рассмотрим, чем открыть CSV на телефоне – предложим пару наиболее популярных приложений.

CSV Viewer

CSV Viewer – бесплатный CSV-reader, поддерживающий различные типы разделителей (запятые, пробелы, табуляции и т. д.). Можно добавлять CSV файлы из встроенного хранилища смартфона, а также загружать объекты из облачных дисков.

Работает так:

  1. Разрешите приложению получить доступ к хранилищу. Выберите искомый объект среди обнаруженных.
  2. Просматривайте содержимое. Для включения фильтров и изменения некоторых параметров отображения используйте панель инструментов, расположенную в нижней части экрана.

Documento Office

Documento Office – платный офисный пакет, с помощью которого можно открывать документы и таблицы. Находится на стадии активной разработки, заявленные нововведения постепенно добавляются.

Развернуть файл CSV можно по следующей инструкции:

  1. Согласитесь с условиями использования, найдите необходимый объект через встроенный проводник.
  2. Просматривайте таблицу, изменяя масштаб. Если нужен редактор CSV, придётся отказаться от этого инструмента.

Никаких дополнительных функций в приложении нет. Не стоит платить за этот вариант, если другие его возможности вас не интересуют.

Чем открыть CSV файл на компьютере

Табличные процессоры – программы для работы с таблицами, которые делают процесс их просмотра на компьютере максимально комфортным. Предлагаем три эффективных варианта, с помощью которых можно запускать файлы CSV.

Microsoft Excel

Microsoft Excel – программа для просмотра таблиц. Входит в пакет Microsoft Office. Подойдёт любая версия – расширение CSV поддерживается всеми.

Для корректного отображения данных (сохранится структура) придётся настроить некоторые параметры:

  1. Перейдите в раздел «Открыть» («File»), нажмите на «Обзор».
  2. Выберите тип отображения «Все файлы», чтобы окно проводника отобразило искомый. Откройте объект.
  3. Если текст открылся без мастера текстов и отображается не так, как должен, перейдите в раздел «Данные», разверните опцию «Получить данные», перейдите в пункт «Из файла», выберите «Из текстового…». Найдите и откройте документ в формате CSV.
  4. Подберите разделитель, при котором содержимое будет отображаться правильно. В графе «Источник…» («Format») установите параметр «Юникод (UTF-8)». Нажмите на «Преобразовать данные».
  5. Кликните по кнопке «Закрыть и загрузить».
  6. Документ откроется в новом листе, результат можно сравнить с предыдущим.

Если приобретать Excel не хочется, можно воспользоваться бесплатными аналогами – например, LibreOffice или OpenOffice.

LibreOffice Calc

Табличный процессор Calc входит в пакет LibreOffice. Распространяется бесплатно, умеет работать с файлами формата CSV.

Для открытия документа следуйте такому алгоритму:

  1. Откройте LibreOffice, нажмите на «», выберите документ в формате CSV через проводник.
  2. Запустится инструмент «Импорт текста». Всё собрано в одном окне – установите вариант кодировки «Юникод (UTF-8)», укажите язык текста, настройте параметры разделителя, нажмите на «ОК».
  3. Содержимое откроется в Calc, можно просматривать и редактировать.

Существует ещё одно бесплатное полнофункциональное средство для работы с таблицами – о нём далее.

OpenOffice Calc

Calc из пакета OpenOffice мало чем отличается от предыдущих решений – после настройки дополнительных параметров любой документ, имеющий требуемое нам расширение, откроется без каких-либо проблем.

Работает так:

  1. Запустите OpenOffice, нажмите на «Open», выберите объект.
  2. Настройте тип данных, язык, параметры разделителя – всё в точности так, как в предыдущих решениях.
  3. Запустится Calc с обработанным документом.

OpenOffice бесплатен, а установочный пакет даже «легче», чем у LibreOffice.

Способ 2: ConvertCSV

Еще один сервис, позволяющий не только конвертировать CSV-файлы в документы различных форматов, но и просматривать и даже редактировать их. Интерфейс сайта крайне напоминает дизайн первого рассмотренного инструмента, но отличается большим количеством настроек для загрузки и выгрузки файлов. Принцип работы с ConvertCSV следующий:

  1. После загрузки сайта в третьем блоке инструментов выберите первый пункт «Viewer & Editor».

Нажмите на кнопку «Выберите файл» и с помощью диалогового окна программы «Проводник» укажите документ, который будет загружен в сервис. Можно также указать прямую ссылку на документ в формате CSV или скопировать данные из программы, где создавался файл, в поле просмотра.

Выберите кодировку, если документ открывается неправильно или сервис выдает ошибку.

Укажите параметры ввода по желанию. Можно убрать названия столбцов, выбрать разделитель для данных, обработать все цитируемые символы как данные, установить настройку, что CSV содержит обратную косую черту и прочие знаки табуляции по типу «\n» или «\t».

Просмотрите документ и при необходимости отредактируйте некоторые значения. Для примера все значения были заменены на «777». В поле «Save Your result» укажите название нового файла. Нажмите на кнопку «Download CSV».

Скачивание произойдет мгновенно, а CSV будет загружен в папку, которая установлена по умолчанию в используемом браузере. При желании можно сохранить документ в формате XLSX, чтобы без проблем открывать его в табличном процессоре Microsoft Office Excel.

Данный онлайн-сервис обладает уже более продвинутыми настройками просмотра CSV-файлов и даже позволяет редактировать и сохранять их как в родном формате, так и в расширении XLSX, с которым работает Excel.

Writer Objects¶

objects ( instances and objects returned by
the
function) have the following public methods. A row must be
an iterable of strings or numbers for objects and a dictionary
mapping fieldnames to strings or numbers (by passing them through
first) for objects. Note that complex numbers are written
out surrounded by parens. This may cause some problems for other programs which
read CSV files (assuming they support complex numbers at all).

(row)

Write the row parameter to the writer’s file object, formatted according
to the current . Return the return value of the call to the
write method of the underlying file object.

Changed in version 3.5: Added support of arbitrary iterables.

(rows)

Write all elements in rows (an iterable of row objects as described
above) to the writer’s file object, formatted according to the current
dialect.

Writer objects have the following public attribute:

A read-only description of the dialect in use by the writer.

DictWriter objects have the following public method:

Способ 1: «Блокнот»

Формат CSV создавался для удобного редактирования без отдельного офисного программного обеспечения, поэтому его легко прочитать и отредактировать даже в таком простом текстовом редакторе, как «Блокнот».

  1. Используйте комбинацию клавиш Win+R. Появится небольшое окно, в поле которого следует написать . Далее нажмите «Enter».

Воспользуйтесь хоткеем Ctrl+O, чтобы мгновенно перейти к списку файлов.

В этом же окне найдите нужную CSV-таблицу и откройте её. Ряды обычно разделяются переносом строки, а колонки — знаками «;» или «,».

Изменяйте содержимое ячеек, следуя правильному формату.

Решение проблем с файлами csv

Iconv входит в состав большинства дистрибутивов ОС UNIX, а uconv – нет. iconv ограничен памятью. uconv намного лучше подходит для работы с большими файлами. Используйте app-get или другой менеджер пакетов UNIX, чтобы получить uconv, если его нет. Затем введите команду:

uconv –from-code ISO_8859-1 –to-code UTF8

Используйте эту команду Perl, чтобы удалить эти символы, пропустив через нее файл:

perl -pi.bak -e’s / // g; ‘

Обратите внимание, что у Postgres есть некоторые проблемы с импортом этих типов файлов, если они содержат значения NULL. Postgres не позволит указать значение NULL как пустую строку (,,)

Обычно это хороший способ представления NULL, но он не будет правильно импортирован как NULL в Postgres.Необходимо использовать явный указатель NULL, например \ N, поэтому, если вас действительно волнуют значения NULL, вы должны использовать \ N.

Как открыть CSV файл онлайн

Существует несколько онлайн-ридеров, с помощью которых можно быстро открыть CSV. Рассмотрим самые популярные бесплатные варианты.

Онлайн сервис Online CSV Editor

Online CSV Editor – удобный онлайн сервис, с помощью которого можно быстро открыть любой файл CSV, а затем отредактировать его. Используется по простейшему алгоритму: нажмите на кнопку «Выберите…», укажите необходимый объект (можно вставить ссылку). Когда загрузка завершится, результат сразу отобразится в виде таблицы.

Чтобы настроить дополнительные параметры отображения, разверните пункт «Step 2: Choose input options». Все изменения применяются сразу, добавлять опции можно даже после загрузки. Также сервис позволяет скачать файл CSV в другом формате.

Google Docs

Google Docs – облачный сервис от Google. Предназначен для работы со всевозможными документами – открыть любой CSV файл сайт сможет без затруднений. Для работы придётся использовать учётную запись Google.

Запустить чтение таблицы CSV можно по такой инструкции:

  1. Кликните по иконке выбора объектов.
  2. Перейдите в раздел «Загрузка». Перетащите требуемый документ в выделенную область или выберите его через нажатие соответствующей кнопки.

Таблица откроется автоматически – можно приступать к редактированию. Google Docs используется бесплатно. Функциональность сервиса позволяет выполнять все базовые операции с данными. Высокая скорость работы не гарантирована на слабых устройствах.

Excel Online

Excel Online – бесплатная браузерная версия популярного Excel из пакета Microsoft Office. Для работы придётся авторизоваться с использованием учётной записи Microsoft (или создать новую). Предлагаемых инструментов хватает для просмотра и обработки CSV-файлов.

Работает так:

  1. Авторизуйтесь, перетащите объект в окно Excel в браузере.
  2. Дождитесь завершения преобразования и приступайте к работе.

Побеждаем порчу данных правильным импортом

Если серьезно, в бедах виноват не Excel целиком, а неочевидный способ импорта данных в программу. По умолчанию Excel применяет к данным в загруженном CSV-файле тип «General» — общий. Из-за него программа распознает цифровые строки как числа. Такой порядок можно победить, используя встроенный инструмент импорта.

Запускаю встроенный в Excel механизм импорта.

В меню это «Data → Get External Data → From Text».

Выбираю CSV-файл с данными, открывается диалог.

В диалоге кликаю на тип файла Delimited (с разделителями). Кодировка — та, что в файле, обычно определяется автоматом. Если первая строка файла — шапка, о.

Перехожу ко второму шагу диалога.

Выбираю разделитель полей (обычно это точка с запятой — semicolon). Отключаю «Treat consecutive delimiters as one», а «Text qualifier» выставляю в «{none}». (Text qualifier — это символ начала и конца текста. Если разделитель в CSV — запятая, то text qualifier нужен, чтобы отличать запятые внутри текста от запятых-разделителей.)

На третьем шаге выбираю формат полей

, ради него все и затевалось. Для всех столбцов выставляю тип «Text». Кстати, если кликнуть на первую колонку, зажать шифт и кликнуть на последнюю, выделятся сразу все столбцы. Удобно.

Дальше Excel спросит, куда вставлять данные из CSV — можно просто нажать «OK», и данные появятся в открытом листе.


Перед импортом придется создать в Excel новый workbook

Но! Если я планирую добавлять данные в CSV через Excel, придется сделать еще кое-что.

После импорта нужно принудительно привести все-все ячейки на листе к формату «Text». Иначе новые поля приобретут все тот же тип «General».

  • Нажимаю два раза Ctrl+A, Excel выбирает все ячейки на листе;
  • кликаю правой кнопкой мыши;
  • выбираю в контекстном меню «Format Cells»;
  • в открывшемся диалоге выбираю слева тип данных «Text».


Чтобы выделить все ячейки, нужно нажать Ctrl+A два раза. Именно два, это не шутка, попробуйте После этого, если повезет, Excel оставит исходные данные в покое. Но это не самая твердая гарантия, поэтому мы после сохранения обязательно проверяем файл через текстовый просмотрщик.

Examples¶

The simplest example of reading a CSV file:

import csv
with open('some.csv', newline='') as f
    reader = csv.reader(f)
    for row in reader
        print(row)

Reading a file with an alternate format:

import csv
with open('passwd', newline='') as f
    reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
    for row in reader
        print(row)

The corresponding simplest possible writing example is:

import csv
with open('some.csv', 'w', newline='') as f
    writer = csv.writer(f)
    writer.writerows(someiterable)

Since is used to open a CSV file for reading, the file
will by default be decoded into unicode using the system default
encoding (see ). To decode a file
using a different encoding, use the argument of open:

import csv
with open('some.csv', newline='', encoding='utf-8') as f
    reader = csv.reader(f)
    for row in reader
        print(row)

The same applies to writing in something other than the system default
encoding: specify the encoding argument when opening the output file.

Registering a new dialect:

import csv
csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)
with open('passwd', newline='') as f
    reader = csv.reader(f, 'unixpwd')

A slightly more advanced use of the reader — catching and reporting errors:

import csv, sys
filename = 'some.csv'
with open(filename, newline='') as f
    reader = csv.reader(f)
    try
        for row in reader
            print(row)
    except csv.Error as e
        sys.exit('file {}, line {}{}'.format(filename, reader.line_num, e))

And while the module doesn’t directly support parsing strings, it can easily be
done:

import csv
for row in csv.reader():
    print(row)

Footnotes

1(,)

If is not specified, newlines embedded inside quoted fields
will not be interpreted correctly, and on platforms that use linendings
on write an extra will be added. It should always be safe to specify
, since the csv module does its own
() newline handling.

Экранированные символы

Что будет, если само поле содержит символ-разделитель, например запятую? А если вместо объемов продаж по регионам данные содержат информацию о городе и штате? Как правило, в CSV-файлах эту проблему обходят, заключая все поле в кавычки наподобие:

Этот алгоритм превратил бы одно значение поля “New York, NY” в два отдельных поля со значениями, разбитыми по запятой: “New York” и “NY”.

В этом случае разделение названий города и штата может не оказаться не столь важным, но данные по-прежнему загрязняются дополнительными символами-кавычками. Хотя здесь их достаточно легко удалить, выполнить очистку более сложных данных может быть не так просто.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector