Работата с CSV-файлове (Comma-Separated Values) е честа задача в програмирането, която се проявява в много практически приложения. Независимо дали извличаш данни от APIs или управляваш наличности — възможността да четеш и записваш CSV-файлове е незаменима. В това ръководство ще научиш как да обработваш CSV-файлове ефективно с Python. Ще се запознаем с създаването на CSV-файлове, четенето на данни, както и манипулацията на тези данни.
Най-важни Erkenntnisse
- Обзор на модула: Python предлага вграден CSV-модул, който предоставя CSV-Reader и Writer.
- Структура на данните: Можеш да използваш както списъци, така и речници, за да съхраняваш и обработваш данните.
- Ефективно управление на I/O: Използвай with open(...) за управление на достъпа до файлове, за да не се налага да мислиш за затваряне на файловете.
Стъпка по стъпка ръководство
Създаване на директория и CSV-файл
В началото създаваш празна директория. В тази директория трябва да създадеш файл с името csvdateien.py. Този файл ще бъде основният ти скрипт за работа с CSV-файлове.

Във вашия Python-файл можеш да създадеш CSV-файла, като използваш името produkte.csv. В този файл ще дефинираш колоните с заглавията Продукт ID, Име, Цена и Наличност.

CSV-файлът може да изглежда примерно така:
Продукт ID,Име,Цена,Наличност 1,iPad,399,50 2,Nerfgun,29.99,100
Четене на CSV-файл
За да прочетеш данни от файла produkte.csv, ти е нужно CSV-модулът. Модулът ти позволява да обработваш CSV-данни ефективно. Можеш да преобразуваш данните в четим формат, като използваш with open(...). Това избягва ръчното затваряне на файловите обекти и прави кода ти по-ясен и безопасен.
В следващата стъпка създаваш CSV-Reader. С него можеш да преминаваш през файла ред по ред и да извличаш данните:
with open('produkte.csv', newline='', encoding='utf-8') as csvfile: csvreader = csv.reader(csvfile) for row in csvreader: print(row)

При това всяка редица се чете като списък, което показва, че данните са структурирани както се очаква. Всяка редица отговаря на един продукт и съдържа информация за ID, име, цена и наличност.
Използване на речници за интуитивна обработка на данни
За да управляваш данните по-просто и интуитивно, трябва да използваш формата на речника. С речниковия Reader можеш да улесниш достъпа до данните си чрез името на полето.

Тук също се нуждаеш от with open(...), за да отвориш файла и да създадеш CSV-Reader. Увери се, че посочваш списък с полетата, които искаш да прочетеш:

Сега можеш лесно да достъпваш полетата чрез имената им. Това прави твоята обработка многократно по-достъпна.
Записване на CSV-файл
За да запишеш собствени данни в CSV-файл, можеш да използваш обект на речников Writer. Имаш възможност да създадеш списък от речници, които представят твоите данни.

Тук е един прост пример как можеш да запазиш списък с супергерои като CSV-файл:
with open('superhelden.csv', 'w', newline='') as csvfile: fieldnames = ['Име', 'Alias'] writer = csv.DictWriter(csvfile, fieldnames=fieldnames)

Файлът superhelden.csv сега ще бъде създаден и ще съдържа данните на супергероите в добре структурирано, четимо форматирано.
Заключение и практическо приложение
CSV-файловете са ценен инструмент за обмен на данни, който често се изисква в практиката. Това ръководство ти дава основите за работа с CSV-файлове в Python. Научи се как да извличаш данни от CSV-файлове, да ги обработваш в Python и да записваш собствени данни в CSV-формат.
Резюме – Обработка на CSV-файлове с Python
CSV-файловете са важен формат за обмен на данни в много приложения. С Python можеш ефективно и лесно да работиш с тези файлове. След като разбереш основите, можеш лесно да приложиш тези техники в сложни данни приложения.
Често задавани въпроси
Как да отворя CSV-файл в Python?Можеш да отвориш CSV-файл в Python с with open('имефайл.csv', 'r'):.
Как мога да запиша данни в CSV-файл?За това използваш обект csv.writer или csv.DictWriter, за да форматираш данните и да ги запишеш във файла.
Каква е разликата между csv.reader и csv.DictReader?csv.reader чете данните като списъци, докато csv.DictReader извежда данните като речници с имена на полета като ключове.
Как мога да определя заглавието в CSV-файл?Заглавието може да бъде указано с writeheader() при запис на CSV-файл чрез Writer.
Как да прочета CSV-файл с определени имена на полета?Подай списък с желаните имена на полета, когато създаваш csv.DictReader.