Как записать список в csv файл на Python?

Пользователь

от johnpaul.blick , в категории: Python , 3 года назад

Как записать список в csv файл на Python?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от NicolasSsh , 3 года назад

@johnpaul.blick Для записи в csv-файл определенного массива, Вы можете воспользоваться библиотекой csv

В данном случае мы будет записывать весь список в один столбец.

1
2
3
4
5
6
7
8
9
import csv

array = ['Apples', 'Bananas', 'Oranges']

with open('main_csv.csv', 'w', newline='') as csv_file:
    csv_writer = csv.writer(csv_file, delimiter=';') # Создаем объект класса writer, в аргументы ставим сам файл и разделитель

    for fruit in array: # Циклом перебираем все объекты массива
        csv_writer.writerow([fruit]) # Записываем объект в новую строку.


Для того, что записывать наши элементы в одну строку, мы можем поступить иначе.


1
2
3
4
5
6
7
8
import csv

array = ['Apples', 'Bananas', 'Oranges']

with open('main_csv.csv', 'w', newline='') as csv_file:
    csv_writer = csv.writer(csv_file, delimiter=';') # Создаем объект класса writer, в аргументы ставим сам файл и разделитель

    csv_writer.writerow([fruit for fruit in array])

Пользователь

от raina , 2 года назад

@johnpaul.blick 

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
import csv

data = [{'name': 'John', 'age': 25},
        {'name': 'Mary', 'age': 22},
        {'name': 'Bob', 'age': 27}]

with open('data.csv', 'w', newline='') as csvfile:
    fieldnames = ['name', 'age']
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
    writer.writeheader()
    for row in data:
        writer.writerow(row)


Если ваш список не состоит из словарей, вы можете использовать csv.writer() для записи списка в csv файл.

1
2
3
4
5
6
7
import csv

data = [['John', 25], ['Mary', 22], ['Bob', 27]]

with open('data.csv', 'w', newline='') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerows(data)