Чтение строк из файла CSV в Python

Опубликовано: 30 Сентября, 2022

CSV означает значения, разделенные запятыми. Этот формат файла представляет собой текстовый файл с разделителями, в котором используется запятая в качестве разделителя для разделения присутствующего в нем текста. Или, другими словами, файлы CSV используются для хранения данных в табличной форме. Согласно предложенному имени, этот файл содержит данные, разделенные запятой, и каждая строка файла считается записью. Мы можем создать файл CSV либо из блокнота, либо с помощью Excel.

Пример:

Geeks,for,geeks
one,of,the,
top,learning,platform

Мы можем создать файл CSV, используя следующие способы:

1. Использование Блокнота: мы можем создать файл CSV с помощью Блокнота. В Блокноте откройте новый файл, в котором значения разделите запятой, и сохраните файл с расширением .csv.

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

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

Использование ридера

Используя считыватель, мы можем перебирать строки CSV-файла в виде списка значений. Он выполняет итерацию по всем строкам в файле CSV и извлекает данные в каждой строке в виде списка. Метод reader() присутствует в библиотеке CSV. Итак, чтобы использовать этот метод чтения, сначала нам нужно импортировать библиотеку CSV. объект чтения принимает единственный параметр с именем fileObject (переменная, содержащая CSV-файл).

Синтаксис:

csv.reader(fileobject)

Шаги для чтения файла CSV:

Step 1: In order to read rows in Python, First, we need to load the CSV file in one object. So to load the csv file into an object use open() method.

with open("filename") as fileObject

While loading the file by specifying path along with filename, if you got any unicode error then append r before path of filename

with open(r"path/filename") as fileObject 

Step 2: Create a reader object by passing the above-created file object to the reader function.

reader_obj = csv.reader(file_obj)

Step 3: Use for loop on reader object to get each row.

Пример:

Рассмотрим файл CSV с именем «samplecsv.csv». Этот файл содержит следующие данные:

Id,Name,Rating
1,Akhil,4
2,Babu,3
3,Nikhil,5

Python3




# Python program to read CSV file line by line
# import necessary packages
import csv
  
# Open file 
with open("samplecsv.csv") as file_obj:
      
    # Create reader object by passing the file 
    # object to reader method
    reader_obj = csv.reader(file_obj)
      
    # Iterate over each row in the csv 
    # file using reader object
    for row in reader_obj:
        print(row)

Выход:

["Id", "Name", "Rating"]
["1", "Akhil", "4"]
["2", "Babu", "3"]
["3", "Nikhil", "5"]

Чтение файла CSV без заголовка

Все в порядке с приведенным выше примером, но если мы не хотим, чтобы имена столбцов извлекались, или мы можем сказать, что не хотим читать заголовок файла, тогда мы используем метод next() для файлового объекта перед созданием объект читателя, чтобы он пропускал заголовки.

Python3




# Python program to read CSV file without header
  
# Import necessary packages
import csv
  
# Open file
with open("samplecsv.csv") as file_obj:
      
    # Skips the heading
    # Using next() method
    heading = next(file_obj)
      
    # Create reader object by passing the file 
    # object to reader method
    reader_obj = csv.reader(file_obj)
      
    # Iterate over each row in the csv file 
    # using reader object
    for row in reader_obj:
        print(row)

Выход:

["1", "Akhil", "4"]
["2", "Babu", "3"]
["3", "Nikhil", "5"]

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

Использование DictReader

При использовании метода reader() мы можем перебирать CSV-файл как список, но с помощью объекта класса DictReader мы можем перебирать CSV-файл построчно как словарь. Этот метод DictReader присутствует в библиотеке csv. Поэтому, чтобы использовать его, сначала нам нужно импортировать библиотеку csv. DictReader() принимает единственный параметр с именем fileObject (переменная, содержащая CSV-файл).

Синтаксис

csv.DictReader(fileobject)

Шаги для чтения файла CSV:

Step 1: Load the CSV file using the open method in a file object.

with open("filename") as fileObject

Step 2: Create a reader object with the help of DictReader method using fileobject.

reader_obj = csv.DictReader(file_obj)

This reader object is also known as an iterator can be used to fetch row-wise data.

Step 3: Use for loop on reader object to get each row.

Пример:

Python3




# Python3 program to read CSV file using DictReader
  
# Import necessary packages
import csv
  
# Open file
with open("samplecsv.csv") as file_obj:
      
    # Create reader object by passing the file
    # object to DictReader method
    reader_obj = csv.DictReader(file_obj)
      
    # Iterate over each row in the csv file
    # using reader object
    for row in reader_obj:
        print(row)

Выход:

OrderedDict([("Id", "1"), ("Name", "Akhil"), ("Rating", "4")])
OrderedDict([("Id", "2"), ("Name", "Babu"), ("Rating", "3")])
OrderedDict([("Id", "3"), ("Name", "Nikhil"), ("Rating", "5")])

Объяснение: В коде мы сначала загрузили CSV-файл с именем samplecsv.csv, а затем создали объект reader_object, который можно итерировать для выборки каждой строки. Возвращаемый результат в виде пары ключ-значение указывает на то, что это словарь. Таким образом, используя DictReader, мы читаем данные построчно как словарь.