Простой Python. Современный стиль программирования (Любанович) - страница 281

>>>> import struct

>>>> width, height = struct.unpack('

>>>> width, height

>(1, 1)

Глава 8. Данные должны куда-то попадать

1. Присвойте строку 'This is a test of the emergency text system' переменной test1 и запишите переменную test1 в файл с именем test.txt:

>>>> test1 = 'This is a test of the emergency text system'

>>>> len(test1)

>43

Вот как можно сделать это с помощью функций open, write и close:

>>>> outfile = open('test.txt', 'wt')

>>>> outfile.write(test1)

>43

>>>> outfile.close()

Или можете использовать with и избежать вызова close (Python сделает это за вас):

>>>> with open('test.txt', 'wt') as outfile:

>…·····outfile.write(test1)

>…

>43

2. Откройте файл test.txt и считайте его содержимое в строку test2. Совпадают ли строки test1 и test2?

>>>> with open('test.txt', 'rt') as infile:

>…·····test2 = infile.read()

>…

>>>> len(test2)

>43

>>>> test1 == test2

>True

3. Сохраните следующие несколько строк в файл books.csv. Обратите внимание на то, что, если поля разделены запятыми, вам нужно заключить поле в кавычки, если оно содержит запятую:

>author,book

>J R R Tolkien,The Hobbit

>Lynne Truss,"Eats, Shoots & Leaves"

>>>> text = '''author,book

>… J R R Tolkien,The Hobbit

>… Lynne Truss,"Eats, Shoots & Leaves"

>… '''

>>>> with open('test.csv', 'wt') as outfile:

>…·····outfile.write(text)

>…

>73

4. Используйте модуль csv и его метод DictReader, чтобы считать содержимое файла books.csv в переменную books. Выведите на экран значения переменной books. Обработал ли метод DictReader кавычки и запятые в заголовке второй книги?

>>>> with open('test.csv', 'rt') as infile:

>…·····books = csv.DictReader(infile)

>…·····for book in books:

>…·········print(book)

>…

>{'book': 'The Hobbit', 'author': 'J R R Tolkien'}

>{'book': 'Eats, Shoots & Leaves', 'author': 'Lynne Truss'}

5. Создайте CSV-файл с именем books.csv и запишите его в следующие строки:

>title,author,year

>The Weirdstone of Brisingamen,Alan Garner,1960

>Perdido Street Station,China Miéville,2000

>Thud!Terry Pratchett,2005

>The Spellman Files,Lisa Lutz,2007

>Small Gods,Terry Pratchett,1992

>>>> text = '''title,author,year

>… The Weirdstone of Brisingamen,Alan Garner,1960

>… Perdido Street Station,China Miéville,2000

>… Thud!Terry Pratchett,2005

>… The Spellman Files,Lisa Lutz,2007

>… Small Gods,Terry Pratchett,1992

>… '''

>>>> with open('books.csv', 'wt') as outfile:

>…·····outfile.write(text)

>…

>201

6. Используйте модуль sqlite3, чтобы создать базу данных SQLite books.db и таблицу books, содержащую следующие поля: title (text), author (text) и year (integer):

>>>> import sqlite3

>>>> db = sqlite3.connect('books.db')