Работа с файлами в Python
Типы файлов
Чтение и запись в csv - файл
Основные функции csv
Выбор разделителя Delimiter
Примеры работы
Примеры работы с csv - файлом
Самостоятельная работа с csv - файлами
132.14K
Категория: ПрограммированиеПрограммирование

Лекция 13. CSV файлы

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

2. Типы файлов

CSV – файлы, создаются через Excel
txt – файлы, создаются через Блокнот
name,age,city
Иван,25,Алматы
Анна,30,Астана
Сергей,22,Шымкент

3. Чтение и запись в csv - файл

Чтение данных из файла:
Запись данных в файл:
import csv – подключаем модуль csv
writer (ФП) - Создает объект для записи данных в CSV
файл.
Чтение данных из файла:
writer = csv.writer(file)
Формат:
csv.reader(Файловая переменная)
Пример чтения файла:
writerow(row) - Записывает одну строку в CSV файл.
user = ["Sam", 31]
writer.writerow(user)
import csv
FILENAME = "users.csv"
with open(FILENAME, "r", newline=‘’) as file:
reader = csv.reader(file)
for row in reader:
print(row[0], " - ", row[1])
writerows(rows) - Записывает несколько строк в CSV
файл.
data = [
['Имя', 'Возраст', 'Город'],
['Анна', '25', 'Москва’]
]
writer.writerows(data)

4. Основные функции csv

Функция / Класс
Назначение
csv.reader()
Чтение CSV построчно (списками)
csv.DictReader()
Чтение CSV как словарей
csv.writer()
Запись CSV (списками)
csv.DictWriter()
Запись CSV (словарями)
writerow()
Записать одну строку
writerows()
Записать несколько строк
writeheader()
Записать заголовки столбцов
delimiter
Разделитель полей
newline
Управление переходом строк
encoding
Кодировка файла

5. Выбор разделителя Delimiter

Параметр delimiter — это разделитель полей в CSVфайле.Он определяет, каким символом отделяются
значения внутри каждой строки файла.
reader = csv.reader(f, delimiter=';’)
Символ
Где часто
используется
,
стандартный CSV
(США, по
умолчанию)
;
Европа, Россия
(Excel по
умолчанию)
Табуляция
\t
TSV-файлы
(табличные
данные)
Вертикальная
черта
`
`
Пробел
''
редко, но иногда
встречается
Разделитель
Запятая
writer = csv.writer(f, delimiter=';’)
reader = csv.DictReader(f, delimiter=';’)
writer = csv.DictWriter(f, fieldnames=["name", "age",
"city"], delimiter=';')
Точка с запятой

6. Примеры работы

Чтение через csv.DictReader
Запись через csv.DictWriter()
import csv
import csv
with open("students.csv", newline='', encoding="utf-8") as file:
reader = csv.DictReader(file)
for row in reader:
print(row)
students = [
{"name": "Иван", "age": 25, "city": "Алматы"},
{"name": "Анна", "age": 30, "city": "Астана"},
]
{'name': 'Иван', 'age': '25', 'city': 'Алматы’}
# Указываем имена столбцов
fieldnames = ["name", "age", "city"]
for row in reader:
print(f"{row['name']} живет в городе {row['city']}")
with open("students.csv", "w", newline='', encoding="utf-8") as
file:
writer = csv.DictWriter(file, fieldnames=fieldnames)
# Записываем строку заголовков
writer.writeheader()
# Записываем данные построчно
writer.writerows(students)

7. Примеры работы с csv - файлом

Пример: Считывает данные из CSV файла, фильтрует и
выводит информацию о людях, возраст которых больше 30
Пример: Сгенерирует случайный текст из 500 символов и
запишет его в текстовый файл
import csv
import csv
# Создаем список данных
data = [
['Иванов', '1990-05-15'],
['Петров', '1985-10-20']
]
# Открываем CSV файл для записи
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
# Считываем данные из CSV файла в список
with open('example.csv', 'r', newline='') as file:
reader = csv.reader(file)
data = list(reader)
# Выводим информацию о людях, возраст которых больше 30
for row in data:
if int(row[1]) > 30:
print(f"{row[0]} {row[1]} лет")
# Записываем заголовок
writer.writerow(['Фамилия', 'Дата рождения'])
# Проверяем и записываем данные
for record in data:
if record[1].startswith('1990'):
writer.writerow(record)

8. Самостоятельная работа с csv - файлами

• Задача: Работа с инвентаризацией. Создайте CSV файл, представляющий инвентаризацию
товаров в магазине. Укажите название товара, количество и стоимость. Напишите
программу, которая считает общую стоимость всех товаров.
• Задача: Анализ данных о студентах. Создайте CSV файл с данными о студентах (ФИО,
возраст, средний балл). Напишите программу, которая определит средний возраст и
средний балл студентов.
• Задача: Фильтрация заказов. Создайте CSV файл с данными о заказах (название товара,
количество, цена). Напишите программу, которая выведет все заказы с суммой выше 1000.
• Задача: Управление сотрудниками. Создайте CSV файл с информацией о сотрудниках (ФИО,
должность, зарплата). Напишите программу, которая подсчитает общую сумму зарплаты
всех сотрудников.
• Задача: Работа с книгами. Создайте CSV файл с информацией о книгах (название, автор, год
издания). Напишите программу, которая найдет все книги, изданные после 2000 года.
• Задача: Сравнение продуктов. Создайте два CSV файла с информацией о продуктах
(название, цена) и сравните их, определив, есть ли одинаковые продукты в обоих списках.
English     Русский Правила