Categories: Python

Работа с файлами CSV в Python

CSV (Comma-Separated Values) – один из наиболее распространенных форматов для хранения и обмена табличными данными. Он прост для понимания и удобен в использовании. В этой статье мы рассмотрим примеры работы с файлами CSV в Python, что такое файлы CSV, как читать и записывать их в Python, и какие возможности предоставляют библиотеки для работы с ними.

Что такое файлы CSV и их преимущества

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

  • Простоту: CSV файлы легко читать и создавать как человеку, так и компьютеру.
  • Поддержку разных языков и платформ: CSV поддерживается множеством программ и операционных систем.
  • Универсальность: CSV файлы могут содержать различные типы данных, включая текст, числа, даты и многое другое.

Как работать с файлами CSV в Python

Python предоставляет множество инструментов для работы с файлами CSV. Для начала давайте рассмотрим, как читать CSV файлы.

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

Чтение CSV файла как словаря

Для чтения CSV файлов в Python вы можете использовать встроенный модуль csv. Вот пример чтения CSV файла:

pythonCopy codeimport csv

with open('example.csv', 'r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    for row in csv_reader:
        print(row)

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

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

Если вы хотите читать CSV файлы как списки, вы можете использовать csv.reader. Вот пример:

pythonCopy codeimport csv

with open('example.csv', 'r') as csv_file:
    csv_reader = csv.reader(csv_file)
    for row in csv_reader:
        print(row)

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

Запись в файл CSV

Для записи данных в CSV файлы также используется модуль csv. Вот пример записи в CSV файл:

pythonCopy codeimport csv

data = [{'Name': 'John', 'Age': 30, 'City': 'New York'},
        {'Name': 'Alice', 'Age': 25, 'City': 'Los Angeles'}]

with open('output.csv', 'w', newline='') as csv_file:
    fieldnames = ['Name', 'Age', 'City']
    writer = csv.DictWriter(csv_file, fieldnames=fieldnames)
    
    writer.writeheader()
    
    for row in data:
        writer.writerow(row)

В этом примере мы создаем CSV файл output.csv и записываем в него данные из списка словарей. Мы также используем csv.DictWriter для записи данных как словарей.

Запись CSV файла без использования библиотеки csv

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

Моя функция для сохранения данных в формате CSV

Ниже представляю Вамшему внимаю функцию, которой пользуюсь я на постоянной основе. При создании файла – создаются заголовки из ключей словаря. В дальнейшем сохраняются значения словаря.

def save_csv(data_dict, csv_file):
 # Проверяем существование файла
 file_exists = os.path.isfile(csv_file)

 # Открываем файл для записи данных
 with open(csv_file, 'a', encoding='utf-8-sig', newline='') as csv_file:
  # Создаем объект для записи CSV
  writer = csv.DictWriter(csv_file, fieldnames=data_dict.keys())
  
  # Если файл только что создан, запишем заголовок (названия колонок)
  if not file_exists:
   writer.writeheader()
  
  # Записываем данные из словаря в файл
  writer.writerow(data_dict)

Заключение

Формат CSV предоставляет удобный и понятный способ хранения и обмена табличными данными. Python предоставляет мощные инструменты для работы с файлами CSV, что делает его отличным выбором для обработки данных в этом формате. Надеемся, что данная статья поможет вам успешно работать с CSV файлами в Python и использовать их в ваших проектах.

Recent Posts

  • Excel

Как правильно открыть CSV с многострочными ячейками в Excel

Если при открытие csv файла с помощью excel У все поехали ячейки - это простой… Read More

% дней назад
  • Python

Загрузка проекта на Github и Автодеплой на сервер

Простые шаги как происходит Загрузка проекта на Github и Автодеплой на сервер Сделайте работу проще! Read More

% дней назад
  • Python
  • Полезная минутка

Миграция базы данных в проектах Python

Миграция базы данных - помогают с этим библиотеки SQLAlchemy и Alembic. Read More

% дней назад
  • Python

Команды Git – Шпаргалка по основным командам Git

Основные Команды Git, которые точно пригодятся. Сохрани себе шпаргалку Git Read More

% дней назад
  • Python

Установка PostgreSQL на сервер Ubuntu и подключение через pgAdmin

Установка PostgreSQL на сервер Read More

% дней назад
  • Полезная минутка

Как создать PrimaryKey для таблицы в PostgreSQL

Как создать PrimaryKey в талице базы данных SQL [РЕШЕНО] Ошибка relation tablename_id_seq doesn't exist Read More

% дней назад