В этой статье мы увидим, как мы можем использовать средства записи csv на python для записи данных списка в csv.
В первом методе мы запишем список в файл CSV с помощью csv.writer().
import csv Details = ['Name', 'class', 'Year', 'Subject','Grade'] rows = [ ['Andrey', '2nd', '2020', 'Physics','A'], ['Max', '3rd', '2022', 'Chemistry','B'], ['Alex', '4th', '2021', 'Math','A']] with open('studentData.csv', 'w') as f: write = csv.writer(f) write.writerow(Details) write.writerows(rows)
Вывод:
Name,class,Year,Subject,Grade Andrey,2nd,2020,Physics,A Max,3rd,2022,Chemistry,B Alex,4th,2021,Math,A
Строка 1 : Импортируем модуль CSV.
Строка 2–3: мы создали два списка деталей и строк. Список деталей будет представлять имена столбцов, а списки строк будут представлять данные каждого столбца.
Строки с 6 по 9 : Мы открываем файл studentData.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект write с помощью csv.writer(f). Сначала мы записываем имена столбцов csv, используя список деталей. После записи имен столбцов csv мы используем write.writerows() и передаем им список строк в качестве параметра для записи каждого из списков в виде строки.
В этом методе мы собираемся записать строку CSV с помощью csv.writer(). Программа подробно описывает, как использовать этот метод для записи строк CSV, приведенных ниже:
import csv data = [['a'], ['b'], ['c'],['d']] file = open('alphabet.csv', 'w+',newline ='') with file: write = csv.writer(file) write.writerows(data)
Вывод:
a b c d
Строка 1 : Импортируем модуль CSV.
Строка 2 : Мы создали один список данных, элементы которого также являются списком. Каждый подсписок будет рассматриваться как отдельная строка.
Строки с 3 по 6 : Мы открываем файл алфавит.csv как режим записи (‘w’) для записи файла. Мы также используем атрибут новой строки, который помогает поместить значение в новую строку. Теперь мы создали объект для записи, используя csv.writer (file). Чтобы записать каждый из списков в виде строки, мы используем write.writerows() и передаем в них список данных в качестве параметра.
Из вывода мы видим, что все подсписки были записаны как новая строка.
В этом методе мы собираемся написать заголовок файла CSV.
import csv list = [[ 'New York', 'USA','A'],['Moscow', 'RUSSIA', 'A'],['Bejing','CHINA','B']] with open('header.csv','w') as f: writer = csv.writer(f) writer.writerow(['City', 'Country', 'Rank']) writer.writerows(list)
Вывод:
City,Country,Rank
Строка 1 : Импортируем модуль CSV.
Строка 2–3 : мы создали один список данных, в котором элементы также являются списком. Каждый подсписок будет рассматриваться как отдельная строка.
Строки с 4 по 7 : Мы открываем файл rank.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Сначала мы записываем имена столбцов CSV с помощью Writerow([‘City’, ‘Country’, ‘Rank’]).
Вывод показывает, что мы успешно написали заголовок файла csv.
Этот метод покажет, как мы можем записать тип кортежа элементов внутри списка в csv.
import csv items = [(('A', 'Alex'), 31), (('B', 'Boris'), 28), (('C', 'Cara'), 25)] with open('tuple.csv', 'w') as f: write = csv.writer(f) write.writerows(items)
Вывод:
"('A', 'Alex')",31 "('B', 'Boris')",28 "('C', 'Cara')",25
Строка 1 : Импортируем модуль CSV.
Строка 2 : Мы создали список элементов, каждый элемент которого является кортежем.
Строка 3–5 : мы открываем файл tuple.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Чтобы записать каждый из элементов списка (кортежа) в виде строки, мы используем write.writerows() и передаем им список элементов в качестве параметра.
Этот метод покажет, как мы можем добавить любые новые данные в CSV с помощью Python Writer.
import csv with open('result.csv','a') as f: writer = csv.writer(f) writer.writerow(['city','New York'])
Вывод:
"('A', 'Alex')",31 "('B', 'Boris')",28 "('C', 'Cara')",25 city,New York
Строка 1 : Импортируем модуль CSV.
Строка 2 : мы открываем файл result.csv в режиме добавления, потому что мы хотим добавить еще несколько данных в существующий файл csv.
Строка 3–4 : Теперь мы создали объект для записи с помощью csv.writer(f). Чтобы записать каждый из элементов списка в виде строки, мы используем write.writerows() и передаем им список элементов в качестве параметра. Но поскольку теперь у нас есть только один список, мы будем использовать только метод writerow().
Из вывода мы видим, что мы успешно добавляем новые данные в существующий файл csv.
import csv from itertools import zip_longest item_1 = ['A', 'B', 'C', 'D'] item_2 = [1,2,3,4] data = [item_1, item_2] export_data = zip_longest(*data, fillvalue = '') with open('item_zip.csv', 'w', encoding="ISO-8859-1", newline='') as file: write = csv.writer(file) write.writerow(("item_1", "item_2")) write.writerows(export_data)
Вывод:
item_1,item_2 A,1 B,2 C,3 D,4
Строка 1 и 2 : мы импортируем модуль CSV и файл zip_longest. Этот модуль используется для итерации в порядке следования.
Строка 3–5 : мы создали два списка item_1 и item_2 для итерации данных. Затем мы объединяем оба списка в один и называем этот список данными.
Строка 6 : Затем мы вызываем метод zip_longest для параллельного перебора двух списков.
Строки с 7 по 10 : Мы открываем файл item_zip.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Сначала мы записываем имена столбца csv, а после записи этого, чтобы записать каждый из списков в виде строки, мы используем write.writerows() и передаем им список строк (export_data) в качестве параметра.
Вывод показывает, что мы успешно записали наши zip-данные в файл csv.
В этом методе мы будем использовать разделитель вертикальной черты (‘|’) вместо запятой. В приведенной ниже программе объясняется, как мы можем использовать разделитель вертикальной черты в нашем коде.
import csv Details = ['Name', 'class', 'Year', 'Subject','Grade'] rows = [ ['Andrey', '2nd', '2020', 'Physics','A'], ['Max', '3rd', '2022', 'Chemistry','B'], ['Alex', '4th', '2021', 'Math','A']] with open('pipe_delimiter.csv', 'w') as f: write = csv.writer(f,delimiter='|') write.writerow(Details) write.writerows(rows)
Вывод:
Name|class|Year|Subject|Grade Andrey|2nd|2020|Physics|A Max|3rd|2022|Chemistry|B Alex|4th|2021|Math|A
Строка 1 : Импортируем модуль CSV.
Строка 2–3 : мы создали два списка деталей и строк. Список деталей будет представлять имена столбцов, а списки строк будут представлять данные каждого столбца.
Строки с 6 по 9 : Мы открываем файл studentData.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Мы также добавляем один дополнительный разделитель атрибутов в метод csv.writer() вместе с f. Сначала мы записываем имена столбцов csv, используя список деталей. После этого мы используем write.writerows() и передаем список строк в качестве параметра для записи каждого из списков в виде строки.
Выходные данные показывают, что данные нашего файла csv отделяются от разделителя вертикальной черты вместо запятой.
В этом методе мы будем использовать некоторые пользовательские символы кавычек при сохранении данных в формате csv. Для этого мы должны использовать атрибут quoting = csv.QUOTE_NONNUMERIC и quotechar, как показано в приведенной ниже программе.
import csv Details = ['Name', 'class', 'Year', 'Subject','Grade'] rows = [ ['Andrey', '2nd', '2020', 'Physics','A'], ['Max', '3rd', '2022', 'Chemistry','B'], ['Alex', '4th', '2021', 'Math','A']] with open('quote.csv', 'w') as f: write = csv.writer(f,quoting=csv.QUOTE_NONNUMERIC, delimiter=';', quotechar='*') write.writerow(Details) write.writerows(rows)
Вывод:
*Name*;*class*;*Year*;*Subject*;*Grade* *Andrey*;*2nd*;*2020*;*Physics*;*A* *Max*;*3rd*;*2022*;*Chemistry*;*B* *Alex*;*4th*;*2021*;*Math*;*A*
Строка 1 : Импортируем модуль CSV.
Строка 2–3 : мы создали два списка деталей и строк. Список деталей будет представлять имена столбцов, а списки строк будут представлять данные каждого столбца.
Строки с 6 по 9 : Мы открываем файл studentData.csv в режиме записи (‘w’) для записи файла. Теперь мы создали объект для записи с помощью csv.writer(f). Мы также добавляем один дополнительный атрибут quiting и quotechar в метод csv.writer() вместе с f. Сначала мы записываем имена столбцов csv, используя список деталей. После этого мы используем write.writerows() и передаем список строк в качестве параметра для записи каждого из списков в виде строки.
Выходные данные показывают, что данные нашего файла csv теперь цитируются с помощью настраиваемого quotechar.
Мы также можем записать CSV-файл с помощью метода DictWriter(). Итак, в этой программе мы увидим, как мы можем использовать метод DictWriter() для записи файла csv.
import csv with open('dictwriter.csv', 'w', newline='') as file: fieldnames = ['A', 'B'] writer = csv.DictWriter(file, fieldnames=fieldnames) writer.writeheader() writer.writerow({'A': 'Magnus Carlsen', 'B': 28770}) writer.writerow({'A': 'Fabiano Caruana', 'B': 28222}) writer.writerow({'A': 'Ding Liren', 'B': 28001})
Вывод:
A,B Magnus Carlsen,28770 Fabiano Caruana,28222 Ding Liren,28001
Строка 1 : Импортируем модуль csv.
Строка 3 : Открываем файл dictwriter.csv в режиме записи.
Строки 4 и 5 : в этом методе dictwriter() мы должны определить ключи в списке и передать их при создании объекта записи, как показано в строке номер 5. Имена полей находятся в той же последовательности, в которой мы хотим записать csv. файл.
Строки с 8 по 10 : мы передаем все данные в Writerow в форме dict (ключ и значение).
В этой статье мы рассмотрели различные способы использования методов csv.writerow(). Мы видели, как можно записать весь список в CSV. Мы также видели, как мы можем записывать кортежи внутри списка в csv. Затем мы познакомились с некоторыми интересными методами, такими как настраиваемый разделитель csv.
Хорошо написанная грамотная заметка!