все 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Сообщить о неточности