имена колонок, в CSV-файл:
import csv
villains = [
{'first': 'Doctor', 'last': 'No'},
{'first': 'Rosa', 'last': 'Klebb'},
{'first': 'Mister', 'last': 'Big'},
{'first': 'Auric', 'last': 'Goldfinger'},
{'first': 'Ernst', 'last': 'Blofeld'},
]
with open('villains', 'wt') as fout:
cout = csv.DictWriter(fout, ['first', 'last'])
cout.writeheader()
cout.writerows(villains)
Структурированные текстовые файлы
221
Этот код создает файл villains со строкой заголовка:
first,last
Doctor,No
Rosa,Klebb
Mister,Big
Auric,Goldfinger
Ernst,Blofeld
Теперь считаем его обратно. Опуская аргумент fieldnames в вызове DictReader(),
мы указываем функции использовать значения первой строки файла (first, last)
как имена колонок и соответствующие ключи словаря:
>>> import csv
>>> with open('villains', 'rt') as fin:
... cin = csv.DictReader(fin)
... villains = [row for row in cin]
...
>>> print(villains)
[{'last': 'No', 'first': 'Doctor'},
{'last': 'Klebb', 'first': 'Rosa'},
{'last': 'Big', 'first': 'Mister'},
{'last': 'Goldfinger', 'first': 'Auric'},
{'last': 'Blofeld', 'first': 'Ernst'}]
XML
Файлы с разделителями охватывают только два измерения: ряды (строки) и ко-
лонки (поля внутри строк). Если вы хотите обмениваться структурами данных
между программами, вам нужен способ кодировать иерархии, последовательности,
множества и другие структуры с помощью текста.
XML является самым известным форматом разметки, который можно приме-
нять в этом случае. Для разделения данных он использует теги, как показано
в следующем примере (файл menu.xml):
<?xml version="1.0"?>
<menu>
<breakfast hours="7-11">
<item price="$6.00">breakfast burritos</item>
<item price="$4.00">pancakes</item>