Как сохранять данные в файлы Excel и CSV?

онлайн тренажер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Как сохранять данные в файлы Excel и CSV? Полное руководство на Python

Работа с файлами Excel и CSV — важный навык для любого Python-разработчика, особенно если вы занимаетесь анализом данных, автоматизацией отчётности или разработкой бэкенд-систем. Правильная запись данных в файлы позволяет удобно хранить, передавать и обрабатывать информацию.

В этой статье вы научитесь:

  • Сохранять данные в CSV и Excel-файлы;

  • Использовать стандартные библиотеки (csv) и сторонние (pandas, openpyxl);

  • Работать с форматированием и структурой данных.


📌 Что такое формат CSV и когда его использовать?

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

Преимущества CSV:

  • Лёгкий и читаемый формат;

  • Быстро открывается в любом редакторе, включая Excel;

  • Идеален для передачи данных между системами.

Недостатки CSV:

  • Нет поддержки сложного форматирования (цвета, формулы);

  • Нельзя хранить изображения и вложенные таблицы.


Как записывать данные в CSV с помощью стандартной библиотеки csv?

Модуль csv входит в стандартную поставку Python и не требует установки.

📚 Пример записи списка в CSV-файл:

python
import csv data = [ ['Имя', 'Возраст', 'Город'], ['Иван', 28, 'Москва'], ['Мария', 25, 'Санкт-Петербург'] ] with open('people.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerows(data)

✅ После выполнения этого кода будет создан файл people.csv с такими данными:

 
Имя,Возраст,Город Иван,28,Москва Мария,25,Санкт-Петербург

📌 Как задать собственный разделитель?

python
with open('people.csv', 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file, delimiter=';') writer.writerows(data)

📚 Запись данных в CSV через DictWriter:

Если удобнее работать с данными в виде словарей:

python
import csv data = [ {'Имя': 'Иван', 'Возраст': 28, 'Город': 'Москва'}, {'Имя': 'Мария', 'Возраст': 25, 'Город': 'Санкт-Петербург'} ] with open('people.csv', 'w', newline='', encoding='utf-8') as file: fieldnames = ['Имя', 'Возраст', 'Город'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerows(data)

Как сохранять данные в Excel-файлы с помощью библиотеки openpyxl?

Файлы Excel чаще используются, если нужно хранить структурированные данные с форматированием, формулами или диаграммами.

Установка библиотеки:

bash
pip install openpyxl

📚 Пример записи данных в Excel:

python
from openpyxl import Workbook data = [ ['Имя', 'Возраст', 'Город'], ['Иван', 28, 'Москва'], ['Мария', 25, 'Санкт-Петербург'] ]
wb = Workbook()
ws = wb.active for row in data: ws.append(row) wb.save('people.xlsx')

После выполнения кода будет создан Excel-файл people.xlsx с таблицей.


📌 Как добавить форматирование в Excel-файлы?

python
from openpyxl.styles import Font
ws['A1'].font = Font(bold=True, color='FF0000') # Сделать текст в ячейке жирным и красным wb.save('people_styled.xlsx')

Использование библиотеки pandas для работы с CSV и Excel

Если вы работаете с большими объёмами данных, удобнее использовать библиотеку pandas.

Установка:

bash
pip install pandas openpyxl

📚 Запись в CSV с помощью pandas:

python
import pandas as pd data = { 'Имя': ['Иван', 'Мария'], 'Возраст': [28, 25], 'Город': ['Москва', 'Санкт-Петербург'] } df = pd.DataFrame(data) df.to_csv('people_pandas.csv', index=False, sep=';')

📚 Запись в Excel с помощью pandas:

python
df.to_excel('people_pandas.xlsx', index=False)

📌 Как записывать данные на несколько листов в одном Excel-файле?

python
with pd.ExcelWriter('multi_sheet.xlsx') as writer: df.to_excel(writer, sheet_name='Лист1', index=False) df.to_excel(writer, sheet_name='Лист2', index=False)

Часто задаваемые вопросы (FAQ)

1. Как изменить разделитель в CSV-файле при сохранении через pandas?

Используйте параметр sep:

python
df.to_csv('data.csv', sep=';', index=False)

2. Можно ли сохранять данные в формате xlsx без библиотеки openpyxl?

Нет, для работы с .xlsx требуется библиотека openpyxl или xlsxwriter.


3. Как добавить формулы в Excel через Python?

python
ws['D2'] = '=B2+10' # Пример формулы wb.save('people_with_formula.xlsx')

4. Как сохранить данные с несколькими уровнями индекса в CSV?

python
multi_index_df.to_csv('multi_index.csv', index=True)

5. Почему pandas не может записать Excel-файл?

Убедитесь, что установлены нужные зависимости:

bash
pip install openpyxl xlsxwriter

6. Как сохранить только определённые столбцы в CSV?

python
df[['Имя', 'Город']].to_csv('filtered.csv', index=False)

Заключение

Теперь вы умеете сохранять данные в файлы CSV и Excel с помощью Python. Для простых задач достаточно стандартного модуля csv и openpyxl. Если же вы работаете с большими массивами данных и хотите гибкости — используйте библиотеку pandas.

Выбор инструмента зависит от ваших задач:

  • CSV — для лёгкой передачи данных и простых таблиц;

  • Excel — для сложных отчётов с форматированием и формулами;

  • Pandas — для обработки и анализа больших объёмов информации.

Новости