Что такое файл CSV?
CSV-файл — это тип обычного текстового файла, в котором для упорядочения табличных данных используется определенная структура. CSV — это распространенный формат обмена данными, поскольку он компактен, прост и универсален. Многие онлайн-сервисы позволяют пользователям экспортировать табличные данные с веб-сайта в файл CSV. Файлы CSV откроются в Excel, и почти во всех базах данных есть инструмент, позволяющий импортировать из файла CSV. Стандартный формат определяется данными строк и столбцов. Кроме того, каждая строка заканчивается новой строкой, чтобы начать следующую строку. Также внутри строки каждый столбец отделяется запятой.
В этом уроке вы узнаете:
- Что такое файл CSV?
- Пример файла CSV.
- Модуль Python CSV
- Функции модуля CSV
- Чтение CSV-файлов
- Чтение как словарь
- Запись в файлы CSV
- Чтение CSV-файлов с помощью панд
- Запись в файлы CSV с помощью Pandas
Пример файла CSV.
Данные в форме таблиц также называются CSV (значения, разделенные запятыми) — буквально «значения, разделенные запятыми». Это текстовый формат, предназначенный для представления табличных данных. Каждая строка файла — это одна строка таблицы. Значения отдельных столбцов разделяются символом-разделителем — запятой (,), точкой с запятой (;) или другим символом. CSV легко читается и обрабатывается Python.
Рассмотрим следующую Табе
Данные таблицы
Язык программирования | Разработано | Появился | расширение |
питон | Гидо ван Россум | 1991 | .py |
Ява | Джеймс Гослинг | 1995 | .Ява |
C ++ | Бьярне Страуструп | 1983 | .cpp |
Вы можете представить эту таблицу в CSV, как показано ниже.
Данные CSV
Язык программирования, разработан, появился, расширение
Питон, Гвидо ван Россум, 1991, .py
Ява, Джеймс Гослинг, 1995, .java
C ++, Бьярн Страуструп, 1983, .cpp
Как видите, каждая строка — это новая строка, а каждый столбец разделен запятой. Это пример того, как выглядит файл CSV.
Модуль Python CSV
Python предоставляет модуль CSV для обработки файлов CSV. Для чтения / записи данных вам нужно пройтись по строкам CSV. Вам нужно использовать метод split для получения данных из указанных столбцов.
Функции модуля CSV
В документации модуля CSV вы можете найти следующие функции:
- csv.field_size_limit — возвращает максимальный размер поля
- csv.get_dialect — получить диалект, связанный с именем
- csv.list_dialects — показать все зарегистрированные диалекты
- csv.reader — читать данные из файла csv
- csv.register_dialect — ассоциирует диалект с именем
- csv.writer — записывает данные в файл csv
- csv.unregister_dialect — удалить диалект, связанный с именем реестра диалекта
- csv.QUOTE_ALL — Цитировать все, независимо от типа.
- csv.QUOTE_MINIMAL — заключить в кавычки поля со специальными символами
- csv.QUOTE_NONNUMERIC — заключить в кавычки все поля, которые не являются числовыми значениями
- csv.QUOTE_NONE — ничего не заключать в кавычки
В этом руководстве мы сосредоточимся только на функциях чтения и записи, которые позволяют редактировать, изменять и манипулировать данными в файле CSV.
Как читать файл CSV
Для чтения данных из CSV-файлов необходимо использовать функцию чтения для создания объекта чтения.
Функция чтения разработана, чтобы взять каждую строку файла и составить список всех столбцов. Затем вы должны выбрать столбец, для которого вы хотите переменные данные.
Это звучит намного сложнее, чем есть. Давайте посмотрим на этот пример, и мы обнаружим, что работать с CSV-файлом не так сложно.
#import necessary modules import csv with open('X:\data.csv','rt')as f: data = csv.reader(f) for row in data: print(row)
Когда вы запустите программу выше, результат будет:
['Programming language; Designed by; Appeared; Extension'] ['Python; Guido van Rossum; 1991; .py'] ['Java; James Gosling; 1995; .java'] ['C++; Bjarne Stroustrup;1983;.cpp']
Как читать CSV как словарь
Вы также можете использовать DictReader для чтения файлов CSV. Результаты интерпретируются как словарь, в котором строка заголовка является ключом, а остальные строки являются значениями.
Рассмотрим следующий код
#import necessary modules import csv reader = csv.DictReader(open("file2.csv")) for raw in reader: print(raw)
Результат этого кода:
OrderedDict([('Programming language', 'Python'), ('Designed by', 'Guido van Rossum'), (' Appeared', ' 1991'), (' Extension', ' .py')]) OrderedDict([('Programming language', 'Java'), ('Designed by', 'James Gosling'), (' Appeared', ' 1995'), (' Extension', ' .java')]) OrderedDict([('Programming language', 'C++'), ('Designed by', ' Bjarne Stroustrup'), (' Appeared', ' 1985'), (' Extension', ' .cpp')])
И этот способ чтения данных из файла CSV намного проще, чем предыдущий метод. Однако это не самый лучший способ чтения данных.
Как написать файл CSV
Если у вас есть набор данных, которые вы хотели бы сохранить в CSV-файле, вы должны использовать функцию writer (). Чтобы перебрать данные по строкам (строкам), вы должны использовать функцию writerow ().
Рассмотрим следующий пример. Мы записываем данные в файл «writeData.csv», где разделитель является апострофом.
#import necessary modules import csv with open('X:\writeData.csv', mode='w') as file: writer = csv.writer(file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL) #way to write to csv file writer.writerow(['Programming language', 'Designed by', 'Appeared', 'Extension']) writer.writerow(['Python', 'Guido van Rossum', '1991', '.py']) writer.writerow(['Java', 'James Gosling', '1995', '.java']) writer.writerow(['C++', 'Bjarne Stroustrup', '1985', '.cpp'])
Результат в CSV-файле:
Programming language, Designed by, Appeared, Extension Python, Guido van Rossum, 1991, .py Java, James Gosling, 1995, .java C++, Bjarne Stroustrup,1983,.cpp
Чтение CSV-файлов с помощью панд
Pandas — это библиотека с открытым исходным кодом, позволяющая вам манипулировать данными в Python. Панды предоставляют простой способ создавать, манипулировать и удалять данные.
Вы должны установить библиотеку pandas с помощью команды <code> pip install pandas </ code>. В Windows вы будете выполнять эту команду в командной строке, а в Linux — в терминале.
Чтение CSV в pandas DataFrame очень быстро и просто:
#import necessary modules import pandas result = pandas.read_csv('X:\data.csv') print(result)
Результат:
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
Очень полезная библиотека. Всего в трех строках кода вы получите тот же результат, что и ранее. Панды знают, что первая строка CSV содержала имена столбцов, и она будет использовать их автоматически.
Запись в файлы CSV с помощью Pandas
Запись в CSV-файл с помощью Pandas так же проста, как и чтение. Здесь вы можете убедить в этом. Сначала вы должны создать DataFrame на основе следующего кода.
from pandas import DataFrame C = {'Programming language': ['Python','Java', 'C++'], 'Designed by': ['Guido van Rossum', 'James Gosling', 'Bjarne Stroustrup'], 'Appeared': ['1991', '1995', '1985'], 'Extension': ['.py', '.java', '.cpp'], } df = DataFrame(C, columns= ['Programming language', 'Designed by', 'Appeared', 'Extension']) export_csv = df.to_csv (r'X:\pandaresult.csv', index = None, header=True) # here you have to write path, where result file will be stored print (df)
Вот вывод
Programming language, Designed by, Appeared, Extension 0 Python, Guido van Rossum, 1991, .py 1 Java, James Gosling, 1995, .java 2 C++, Bjarne Stroustrup,1983,.cpp
И файл CSV создается в указанном месте.
Вывод
Итак, теперь вы знаете, как использовать метод «csv», а также читать и записывать данные в формате CSV. Файлы CSV широко используются в программных приложениях, потому что их легко читать и управлять ими, а их небольшой размер делает их относительно быстрыми для обработки и передачи.
Модуль CSV предоставляет различные функции и классы, которые позволяют легко читать и писать. Вы можете посмотреть официальную документацию по Python и найти еще несколько интересных советов и модулей. CSV — лучший способ сохранения, просмотра и отправки данных. На самом деле, это не так сложно учиться, как кажется в начале. Но с небольшой практикой вы справитесь с этим.
Панды — отличная альтернатива чтению файлов CSV.
Также есть другие способы анализа текстовых файлов с библиотеками, такими как ANTLR, PLY и PlyPlus. Все они могут обрабатывать тяжелые операции синтаксического анализа, и если простое манипулирование строками не работает, есть регулярные выражения, которые вы можете использовать.