«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Руководство по CSV-модулю Python

Руководство по CSV-модулю Python

Опубликовано 8 ноября 2024 г.
Просматривать:374

Guide to Python

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

Одним из таких форматов файлов, который регулярно используется, особенно при анализе данных, является файл CSV.

CSV, или значения, разделенные запятыми, — популярный формат обмена данными благодаря своей простоте.

К счастью, в Python имеется встроенный модуль csv, который делает работу с этими файлами чрезвычайно эффективной.

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


Что такое CSV-файл?

Прежде чем углубляться в модуль csv, давайте начнем с базового понимания того, что такое CSV-файл.

Файл CSV по существу представляет собой обычный текстовый файл, в котором каждая строка представляет собой строку данных, а каждое значение разделено запятой (или иногда другими разделителями, например табуляциями).

Вот краткий пример того, как это может выглядеть:

Name,Age,Occupation
Alice,30,Engineer
Bob,25,Data Scientist
Charlie,35,Teacher

Почему модуль csv?

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

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

Модуль csv абстрагирует все это, позволяя вам сосредоточиться на своих данных.


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

Давайте перейдем к коду.

Самая распространенная операция, которую вы выполняете с CSV-файлом, — это чтение его содержимого.

Функция csv.reader() в модуле — простой в использовании инструмент для этого.

Вот пошаговое руководство, как это сделать.

Основы чтения CSV

import csv

# Open a CSV file
with open('example.csv', 'r') as file:
    reader = csv.reader(file)

    # Iterate over the rows
    for row in reader:
        print(row)

Это самый простой способ прочитать CSV-файл.

Csv.reader() возвращает итерацию, где каждая итерация дает вам список, представляющий строку файла.

Обработка заголовков
Большинство файлов CSV имеют заголовки в первой строке, например имена столбцов.

Если вам не нужны эти заголовки, вы можете просто пропустить первую строку при итерации:

import csv

with open('example.csv', 'r') as file:
    reader = csv.reader(file)

    # Skip header
    next(reader)

    for row in reader:
        print(row)

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

Вы можете легко сделать это в цикле for.

DictReader: более интуитивно понятный способ чтения файлов CSV
Если в вашем CSV-файле есть заголовки, csv.DictReader() — еще один фантастический вариант, который читает каждую строку как словарь, где ключами являются имена столбцов:

import csv

with open('example.csv', 'r') as file:
    reader = csv.DictReader(file)

    for row in reader:
        print(row)

Такой подход может сделать ваш код более читабельным и интуитивно понятным, особенно при работе с большими наборами данных.

Например, доступ к строке['Name'] кажется гораздо более понятным, чем доступ на основе индекса, такой как строка[0].


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

После того как вы прочитали и обработали свои данные, скорее всего, вы захотите сохранить или экспортировать их.

Функция csv.writer() – это удобный инструмент для записи в файлы CSV.

Основы написания CSV

import csv

# Data to be written
data = [
    ['Name', 'Age', 'Occupation'],
    ['Alice', 30, 'Engineer'],
    ['Bob', 25, 'Data Scientist'],
    ['Charlie', 35, 'Teacher']
]

# Open a file in write mode
with open('output.csv', 'w', newline='') as file:
    writer = csv.writer(file)

    # Write data to the file
    writer.writerows(data)

Функция write.writerows() принимает список списков и записывает их в файл CSV, где каждый внутренний список представляет собой строку данных.

DictWriter: более чистый способ записи файлов CSV
Точно так же, как у нас есть DictReader для чтения файлов CSV в словари, у нас есть DictWriter для записи словарей в CSV.

Этот метод может быть особенно удобен, если вы хотите явно указать имена столбцов.

import csv

# Data as list of dictionaries
data = [
    {'Name': 'Alice', 'Age': 30, 'Occupation': 'Engineer'},
    {'Name': 'Bob', 'Age': 25, 'Occupation': 'Data Scientist'},
    {'Name': 'Charlie', 'Age': 35, 'Occupation': 'Teacher'}
]

# Open file for writing
with open('output.csv', 'w', newline='') as file:
    fieldnames = ['Name', 'Age', 'Occupation']
    writer = csv.DictWriter(file, fieldnames=fieldnames)

    # Write the header
    writer.writeheader()

    # Write the data
    writer.writerows(data)

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


Настройка разделителей

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

Модуль csv предоставляет простой способ справиться с такими случаями, указав аргумент-разделитель.

import csv

with open('example_tab.csv', 'r') as file:
    reader = csv.reader(file, delimiter='\t')

    for row in reader:
        print(row)

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

Будь то запятые, табуляции или любой другой разделитель, модуль csv поможет вам.


Обработка сложных данных

Что делать, если ваши данные содержат запятые внутри полей, кавычки или даже разрывы строк?

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

Вы также можете контролировать работу цитирования с помощью параметра quoting.

import csv

data = [
    ['Name', 'Occupation', 'Description'],
    ['Alice', 'Engineer', 'Works on, "cutting-edge" technology'],
    ['Bob', 'Data Scientist', 'Loves analyzing data.']
]

with open('complex.csv', 'w', newline='') as file:
    writer = csv.writer(file, quoting=csv.QUOTE_ALL)
    writer.writerows(data)

В этом примере QUOTE_ALL гарантирует, что каждое поле заключено в кавычки.

Другие параметры кавычек включают csv.QUOTE_MINIMAL, csv.QUOTE_NONNUMERIC и csv.QUOTE_NONE, что дает вам полный контроль над форматированием ваших данных CSV.


Заключение

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

Имеете ли вы дело с простыми электронными таблицами или сложными многострочными полями данных, этот модуль делает процесс интуитивно понятным и легким.

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

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

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/devasservice/guide-to-pythons-csv-module-32ie?1. В случае нарушения прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3