Python Glossary English

все Python 3Файлы и I/Oпонятие

csv

csv

Модуль csv — чтение и запись CSV-файлов. reader/writer для строк, DictReader/DictWriter для словарей.

Синтаксис

import csv
csv.reader(f)
csv.writer(f)

Файл под csv открывают с newline='' — модуль сам управляет переводами строк, и без этого на Windows между записями появятся пустые строки. reader отдаёт все поля строками: '30' останется текстом, приводить к int или float нужно вручную. DictReader берёт имена полей из первой строки файла — если заголовка нет, передайте fieldnames явно, иначе первая запись данных молча станет заголовком.

Примеры

import csv, io
output = io.StringIO()
writer = csv.writer(output)
writer.writerow(['name', 'age'])
writer.writerow(['Alice', 30])
print(output.getvalue())  # → name,age / Alice,30
output.seek(0)
for row in csv.reader(output):
    print(row)  # → ['name', 'age'] / ['Alice', '30'] — всё читается строками
import csv, io
# Запись в файл
with open('data.csv','w',newline='',encoding='utf-8') as f:
    w = csv.writer(f)
    w.writerows([['a',1],['b',2]])
    # Чтение с другим разделителем
    data = 'a;b;c\n1;2;3'
    for row in csv.reader(io.StringIO(data), delimiter=';'):
        print(row)  # → ['a','b','c'] / ['1','2','3']
        # Настройка quoting
        output3 = io.StringIO()
        w2 = csv.writer(output3, quoting=csv.QUOTE_ALL)
        w2.writerow(['hello world', '42', 'a,b'])
        print(output3.getvalue())

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности