Як написати список у CSV на Python

Якщо ви мучилися зі списками Python і думали, як зберегти їх як акуратний файл CSV, ви в потрібному місці. Одне з найпоширеніших завдань у Python — написати список у файлі, розділеному комами, і сьогодні ми перетворимо вас на професіонала створення файлів CSV!

Щоб записати список у CSV у Python, ви можете використати вбудований модуль під назвою csv, розроблений спеціально для читання та запису файлів CSV. Клас csv.writer модуля надає функції для запису простих і вкладених списків у файли CSV.

Інші методи отримання того самого результату включають встановлення та використання зовнішніх модулів Pandas або NumPy.

Ця стаття пояснює поняття та крок за кроком проведе вас через процес із усіма прикладами коду, які вам знадобляться, щоб почати.

Ходімо!

Зміст

Що таке списки в Python?

Як написати список у CSV на Python

Список у Python — це вбудована структура даних, яка використовується для зберігання кількох елементів в одній змінній.

Списки Python:

  • впорядкований (починаючи з нуля).

  • змінювані (можна змінювати).

  • можливість зберігати повторювані значення.

Списки визначаються значеннями в квадратних дужках [], а елементи розділяються комами. Елементи в списку можуть мати будь-який тип даних, наприклад числа, рядки та навіть інші списки.

Ось приклад створення простого списку:

products = [“t-shirts”, “hoodies”, “jeans”]

Списки списків у Python

Списки списків також відомі як вкладені списки . Це списки, які містять інші списки як свої елементи.

Вони часто використовуються в Python для представлення структурованих даних у рядках і стовпцях. Вони зазвичай використовуються в сценаріях, коли потрібно згрупувати пов’язані дані.

Ось приклад створення вкладеного списку, який представляє продукти, ціни та продажі.

product_sales = [[“t-shirts”, 9.99, 342], [“hoodies”, 24.99, 118], [“jeans”, 29.99, 612]

Файли CSV і модуль CSV у Python

Файли CSV представляють табличні дані в простому форматі. Кожен рядок у файлі відповідає рядку в таблиці. Кожне значення в рядку (або рядку) відокремлюється комою — тому формат називається «Значення, розділені комами».

Ось як може виглядати файл із представленням продуктів, цін і розпродажів у форматі CSV:

  • футболки, 9,99, 342

  • толстовки, 24,99, 118

  • джинси, 29,99, 612

Як написати список у CSV на Python

Модуль csv — це вбудований модуль Python, який надає інструменти для читання та запису даних у форматі CSV. Це особливо корисно завдяки своїй простоті та ефективності.

Імпортувавши модуль csv , ви отримуєте доступ до класу csv.writer() , який дозволяє створювати об’єкт запису, який може записувати рядок із роздільниками у файловий об’єкт.

Гаразд, тепер, коли ми розглянули основи, давайте подивимося, як можна написати простий список у CSV за допомогою Python у наступному розділі.

Як написати простий список у CSV на Python

Перший метод, який потрібно вивчити, це простий (не вкладений) файл списку, який виглядає так:

  • футболки

  • толстовки

  • джинси

Як написати список у CSV на Python

Загальні кроки для запису списку у файл CSV:

  1. Імпортуйте модуль csv .

  2. Створіть список Python.

  3. Відкрийте файл CSV у режимі запису.

  4. Використовуйте функцію writerow() об’єкта запису csv .

  5. Збережіть і закрийте файл CSV.

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

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a 
my_list = ["t-shirts", "hoodies", "jeans"]

# Step 3: Opening a CSV file in write mode

with open('products.csv', 'w', newline='') as file:
    # Step 4: Using csv.writer to write the list to the CSV file
    writer = csv.writer(file)
    writer.writerow(my_list) # Use writerow for single list

# Step 5: The file is automatically closed when exiting the 'with' block

Використання менеджерів контексту

Якщо ви не знайомі з методом «за допомогою» роботи з файлами, це техніка, яка використовує контекстний менеджер, який керує файловими ресурсами.

Наприклад, якщо ви використовуєте його для запису файлів CSV, файли автоматично закриваються, коли оператор with закінчується.

Як записати список списків у CSV

У списку списків кожен внутрішній список має бути рядком CSV у файлі. Ось як виглядатимуть дані CSV:

Як написати список у CSV на Python

Загальні кроки подібні до попереднього розділу, за винятком того, що ви використовуєте функцію writerows() замість writerow() .

# Step 1: Importing the CSV module
import csv

# Step 2: Creating a Python list of lists
my_list = [["t-shirts", 9.99, 342], ["hoodies", 24.99, 118], ["jeans", 29.99, 612]]

# Step 3: Opening a CSV file in write mode
with open('product_sales.csv', 'w', newline='') as file:
    # Step 4: Using csv.writer to write the list to the CSV file
    writer = csv.writer(file)
    writer.writerows(my_list) # Use writerows for nested list

# Step 5: The file is automatically closed when exiting the 'with' bloc

У цьому другому прикладі кожен внутрішній список записується як окремий рядок у файлі.

Зауважте, що модуль csv дає вам змогу уникнути необхідності або через структуру даних і записувати її рядок за рядком.

Далі ми розглянемо, як можна додати дані до наявних файлів CSV.

Як додати дані до існуючих файлів CSV

Як написати список у CSV на Python

Щоб додати дані до наявного файлу CSV, виконайте такі дії:

  1. Імпортуйте модуль csv .

  2. Відкрийте файл CSV у режимі додавання («a») за допомогою контекстного менеджера with open() .

  3. Створіть новий список із даними, які потрібно додати.

  4. Створіть об’єкт csv.writer() , передавши відкритий файл.

  5. Використовуйте об’єкт csv.writer() , щоб записати новий список у файл CSV.

Ось приклад запису, який додає вкладений список (один рядок) до наявного файлу:

import csv

new_row = [["leggings", 22.99, 483]]

with open('product_sales.csv', 'a', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(new_row)

Обов’язково додайте новий рядок=” під час відкриття файлу, щоб забезпечити належне форматування файлу CSV на різних платформах.

У наступному розділі ми розглянемо, як можна використовувати клас DictWriter для запису у файли CSV.

Як використовувати DictWriter для запису у файли CSV

Як написати список у CSV на Python

Наразі ми навчилися писати списки у файли CSV. Однак Python має інші структури даних, які також можна записати у файл CSV.

Клас DictWriter () також є частиною модуля csv . Він схожий на клас writer() , але обробляє дані словника.

Ось приклад:

import csv

product_sales_dict = [
    {"product": "t-shirts", "price": 9.99, "sales": 342},
    {"product": "hoodies", "price": 24.99, "sales": 118},
    {"product": "jeans", "price": 29.99, "sales": 612}
]

fieldnames = ["product", "price", "sales"]

with open("dictionary.csv", "w", newline="") as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

    writer.writeheader()
    writer.writerows(product_sales_dict)

Розширені методи CSV у Python

Використання модуля csv — не єдиний спосіб експортувати списки Python як файли CSV.

Дві популярні бібліотеки, які надають функціональність для цього завдання, це Pandas і NumPy .

1. Як експортувати дані за допомогою Pandas

Як написати список у CSV на Python

Pandas — широко використовувана бібліотека Python для обробки та аналізу даних.

Щоб зберегти списки Python як файл CSV, ви можете створити pandas DataFrame зі списку, а потім використати метод to_csv() , як показано нижче:

import pandas as pd
# Example list of lists
data = [['ABC', 1.2, 30], ['XYZ', 0.8, 20], ['LMN', 2.3, 50]]
# Create a DataFrame from the list
data_frame = pd.DataFrame(data, columns=['Name', 'Value', 'Quantity'])
# Save DataFrame to CSV file
data_frame.to_csv('output.csv', index=False, encoding='utf-8')

Якщо ваші дані містять символи, відмінні від ASCII, вам може знадобитися встановити відповідне значення для параметра кодування, наприклад "utf-8".

2. Як використовувати NumPy для збереження списків у CSV

Варто розглянути ще одну бібліотеку, яка забезпечує підтримку роботи з масивами та матрицями.

NumPy пропонує функцію np.savetxt() як зручний спосіб збереження даних у файл CSV.

Ось приклад, який демонструє, як зберегти список у файл CSV за допомогою NumPy:

import numpy as np
# Example list of lists
data = [['ABC', 1.2, 30], ['XYZ', 0.8, 20], ['LMN', 2.3, 50]]
# Save the list to a CSV file
np.savetxt('output.csv', data, delimiter=',', fmt='%s', header='Name,Value,Quantity', comments='')

Ось розбивка параметрів savetxt() :

  • роздільник: визначає роздільник полів

  • Параметр fmt: вказує формат даних, які зберігаються

  • %s: заповнювач для рядкових значень

  • header : список заголовків стовпців

  • коментарі: керуйте символами, які починають коментарі у вихідному файлі.

Як очистити дані перед записом у файл

Рекомендується очистити дані перед записом у текстові файли. У цьому відео ви дізнаєтеся про необхідні техніки:

Заключні думки

Запис списку у файл CSV у Python є простим і ефективним способом зберігання та обміну даними. Ви навчилися використовувати вбудований модуль csv Python для виконання цього завдання.

Тепер ви знайомі зі створенням списку Python, імпортуванням модуля csv , відкриттям файлу CSV і використанням csv.writer для запису списку у файл CSV.

Ви також дізналися про складніші сценарії запису списку списків у файл CSV, який дозволяє зберігати табличні дані.

Не забувайте, що, як і все в програмуванні, практика робить досконалим. Отже, візьміть ці нові знання, пограйте з ними та подивіться, як це працює з різними наборами даних і потребами проекту.

Це лише верхівка айсберга Python. У величезному світі Python є ще багато цікавого, тож не зупиняйтеся на цьому. Але сьогодні поплескайте себе по плечу. Ви успішно приборкали звіра перетворення списків у CSV!

Leave a Comment

Змініть формати дати за допомогою редактора Power Query

Змініть формати дати за допомогою редактора Power Query

У цьому посібнику ви дізнаєтеся, як перетворити текст у формат дати за допомогою редактора Power Query в LuckyTemplates.

Power Query: об’єднайте файли з кількох папок

Power Query: об’єднайте файли з кількох папок

Дізнайтеся, як об’єднати файли з кількох папок у мережі, робочому столі, OneDrive або SharePoint за допомогою Power Query.

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Обчисліть місячне ковзне середнє з початку року (з початку року) у LuckyTemplates

Цей підручник пояснює, як обчислити місячне ковзне середнє на базі даних з початку року за допомогою функцій AVERAGEX, TOTALYTD та FILTER у LuckyTemplates.

Створення таблиці дат у LuckyTemplates

Створення таблиці дат у LuckyTemplates

Дізнайтеся, чому важлива спеціальна таблиця дат у LuckyTemplates, і вивчіть найшвидший і найефективніший спосіб це зробити.

Мобільні звіти LuckyTemplates. Поради та методи

Мобільні звіти LuckyTemplates. Поради та методи

У цьому короткому посібнику розповідається про функцію мобільних звітів LuckyTemplates. Я збираюся показати вам, як ви можете ефективно створювати звіти для мобільних пристроїв.

Звіти про професійну аналітику послуг у LuckyTemplates

Звіти про професійну аналітику послуг у LuckyTemplates

У цій презентації LuckyTemplates ми розглянемо звіти, що демонструють професійну аналітику послуг від фірми, яка має кілька контрактів і залучених клієнтів.

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Оновлення Microsoft Power Platform | Microsoft Ignite 2021

Ознайомтеся з основними оновленнями для Power Apps і Power Automate, а також їх перевагами та наслідками для Microsoft Power Platform.

Загальні функції SQL: огляд

Загальні функції SQL: огляд

Відкрийте для себе деякі поширені функції SQL, які ми можемо використовувати, наприклад String, Date і деякі розширені функції для обробки та маніпулювання даними.

Створення шаблону LuckyTemplates: керівництво та поради

Створення шаблону LuckyTemplates: керівництво та поради

У цьому підручнику ви дізнаєтеся, як створити свій ідеальний шаблон LuckyTemplates, налаштований відповідно до ваших потреб і вподобань.

Параметри полів і малі кратні в LuckyTemplates

Параметри полів і малі кратні в LuckyTemplates

У цьому блозі ми продемонструємо, як шарувати параметри поля з малими кратними, щоб створити неймовірно корисну інформацію та візуальні ефекти.