Вывести содержимое файла csv python

CSV-файл в Python – чтение и запись

CSV-файл в Python означает «значения, разделенные запятыми» и определяется как простой формат файла, использующий определенную структуру для упорядочивания табличных данных. Он хранит табличные данные, такие как электронная таблица или база данных, в виде обычного текста и имеет общий формат для обмена данными. Файл csv открывается на листе Excel, а данные строк и столбцов определяют стандартный формат.

Узнаем, как осуществляется чтение и запись CSV-файлов в Python.

Функции модуля Python CSV

Модуль CSV используется для обработки файлов CSV для чтения / записи и получения данных из указанных столбцов. Существуют следующие типы функций CSV:

  • csv.field_size_limit – возвращает текущий максимальный размер поля, разрешенный парсером.
  • csv.get_dialect – возвращает диалект, связанный с именем.
  • csv.list_dialects – возвращает названия всех зарегистрированных диалектов.
  • csv.reader – читает данные из файла csv.
  • csv.register_dialect – связывает диалект с именем. Имя должно быть строкой или объектом Unicode.
  • csv.writer – записывает данные в файл csv.
  • o csv.unregister_dialect – удаляет диалект, связанный с именем, из реестра диалектов. Если имя не является зарегистрированным именем диалекта, возникает ошибка.
  • csv.QUOTE_ALL – предписывает объектам записи заключать в кавычки все поля. csv.QUOTE_MINIMAL – предписывает объектам записи указывать только те поля, которые содержат специальные символы, такие как quotechar, delimiter и т. д.
  • csv.QUOTE_NONNUMERIC – предписывает объектам записи заключать в кавычки все нечисловые поля.
  • csv.QUOTE_NONE – указывает объекту записи никогда не заключать поля в кавычки.
Читайте также:  Виндовс приложения на python

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

Python предоставляет различные функции для чтения файла CSV. Опишем несколько методов для чтения.

В Python модуль csv.reader() используется для чтения файла csv. Он берет каждую строку файла и составляет список всех столбцов.

Мы взяли текстовый файл с именем python.txt, в котором есть разделитель по умолчанию(,) со следующими данными:

name,department,birthday month Parker,Accounting,November Smith,IT,October
import csv with open('python.csv') as csv_file: csv_reader = csv.reader(csv_file, delimiter=',') line_count = 0 for row in csv_reader: if line_count == 0: print(f'Column names are ') line_count += 1
Column names are name, department, birthday month Parker works in the Accounting department, and was born in November. Smith works in the IT department, and was born in October. Processed 3 lines.

В приведенном выше коде мы открыли python.csv с помощью функции open(). Мы использовали функцию csv.reader() для чтения файла, который возвращает итеративный объект чтения. Объект чтения состоял из данных, и мы повторили цикл, используя цикл for, чтобы распечатать содержимое каждой строки.

Чтение CSV в словаре

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

Входной файл python.txt выглядит следующим образом:

name,department,birthday month Parker,Accounting,November Smith,IT,October
import csv with open('python.txt', mode='r') as csv_file: csv_reader = csv.DictReader(csv_file) line_count = 0 for row in csv_reader: if line_count == 0: print(f'The Column names are as follows ') line_count += 1 print(f'\t works in the department, and was born in .') line_count += 1 print(f'Processed lines.')
The Column names are as follows name, department, birthday month Parker works in the Accounting department, and was born in November. Smith works in the IT department, and was born in October. Processed 3 lines.

Чтение с помощью Pandas

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

Чтение файла csv в pandas DataFrame выполняется быстро и просто. Нам не нужно писать достаточно строк кода, чтобы открывать, анализировать и читать файл csv в pandas, и он хранит данные в DataFrame.

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

Name,Hire Date,Salary,Leaves Remaining John Idle,08/15/14,50000.00,10 Smith Gilliam,04/07/15,65000.00,8 Parker Chapman,02/21/14,45000.00,10 Jones Palin,10/14/13,70000.00,3 Terry Gilliam,07/22/14,48000.00,7 Michael Palin,06/28/13,66000.00,8
import pandas df = pandas.read_csv('hrdata.csv') print(df)

В приведенном выше коде трех строк достаточно для чтения файла, и только одна из них выполняет фактическую работу, то есть pandas.read_csv()

Name Hire Date Salary Leaves Remaining 0 John Idle 03/15/14 50000.0 10 1 Smith Gilliam 06/01/15 65000.0 8 2 Parker Chapman 05/12/14 45000.0 10 3 Jones Palin 11/01/13 70000.0 3 4 Terry Gilliam 08/12/14 48000.0 7 5 Michael Palin 05/23/13 66000.0 8

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

Мы также можем не только читать, но и писать любые новые и существующие файлы CSV. Запись файлов на Python осуществляется с помощью модуля csv.writer(). Он похож на модуль csv.reader() и также имеет два метода, то есть функцию записи или класс Dict Writer.

Он представляет две функции: writerow() и writerows(). Функция writerow() записывает только одну строку, а функция writerows() записывает более одной строки.

Диалекты

Они определяются как конструкция, которая позволяет создавать, хранить и повторно использовать различные параметры форматирования. Диалект поддерживает несколько атрибутов; наиболее часто используются:

  • Dialect.delimiter: этот атрибут используется как разделительный символ между полями. Значение по умолчанию – запятая(,).
  • Dialect.quotechar: этот атрибут используется для выделения полей, содержащих специальные символы, в кавычки.
  • Dialect.lineterminator: используется для создания новых строк, значение по умолчанию – ‘\r\n’.

Запишем следующие данные в файл CSV.

import csv with open('Python.csv', 'w') as csvfile: fieldnames = ['first_name', 'last_name', 'Rank'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerow() writer.writerow() writer.writerow() writer.writerow() print("Writing complete")

Он возвращает файл с именем Python.csv, который содержит следующие данные:

first_name,last_name,Rank Parker,Brian,B Smith,Rodriguez,A Jane,Oscar,B Jane,Loive,B

Запись CSV в словарь

Мы также можем использовать класс DictWriter для записи файла CSV непосредственно в словарь.

Файл с именем python.csv содержит следующие данные:

Parker, Accounting, November

import csv with open('python.csv', mode='w') as csv_file: fieldnames = ['emp_name', 'dept', 'birth_month'] writer = csv.DictWriter(csv_file, fieldnames=fieldnames) writer.writeheader() writer.writerow() writer.writerow()
emp_name,dept,birth_month Parker,Accounting,November Smith,IT,October

С помощью Pandas

Это так же просто, как прочитать файл CSV с помощью pandas. Вам необходимо создать DataFrame, который представляет собой двумерную неоднородную табличную структуру данных и состоит из трех основных компонентов: данных, столбцов и строк. Здесь мы берем для чтения немного более сложный файл под названием hrdata.csv, который содержит данные о сотрудниках компании.

Name,Hire Date,Salary,Leaves Remaining John Idle,08/15/14,50000.00,10 Smith Gilliam,04/07/15,65000.00,8 Parker Chapman,02/21/14,45000.00,10 Jones Palin,10/14/13,70000.00,3 Terry Gilliam,07/22/14,48000.00,7 Michael Palin,06/28/13,66000.00,8
import pandas df = pandas.read_csv('hrdata.csv', index_col='Employee', parse_dates=['Hired'], header=0, names=['Employee', 'Hired', 'Salary', 'Sick Days']) df.to_csv('hrdata_modified.csv')
Employee, Hired, Salary, Sick Days John Idle, 2014-03-15, 50000.0,10 Smith Gilliam, 2015-06-01, 65000.0,8 Parker Chapman, 2014-05-12, 45000.0,10 Jones Palin, 2013-11-01, 70000.0,3 Terry Gilliam, 2014-08-12 , 48000.0,7 Michael Palin, 2013-05-23, 66000.0,8

Источник

Оцените статью