Книга «Изучаем Python»



Pdf көрінісі
бет125/266
Дата03.03.2023
өлшемі7,86 Mb.
#170986
түріКнига
1   ...   121   122   123   124   125   126   127   128   ...   266
Байланысты:
Изучаем Python. Программирование игр, визуализация данных, веб-приложения ( PDFDrive )


Глава 10 • Файлы и исключения
Обратите внимание: преобразование строки к нижнему регистру функцией lower() позволя-
ет найти все вхождения искомого слова независимо от регистра .
Напишите программу, которая читает файлы из проекта «Гутенберг» и определяет количе-
ство вхождений слова ‘the’ в каждом тексте .
Сохранение данных
Многие ваши программы будут запрашивать у пользователя информацию. Напри-
мер, пользователь может вводить настройки для компьютерной игры или данные 
для визуального представления. Чем бы ни занималась ваша программа, инфор-
мация, введенная пользователем, будет сохраняться в структурах данных (таких, 
как списки или словари). Когда пользователь закрывает программу, введенную 
им информацию почти всегда следует сохранять на будущее. Простейший способ 
сохранения данных основан на использовании модуля 
json
.
Модуль 
json
обеспечивает запись простых структур данных Python в файл и за-
грузку данных из файла при следующем запуске программы. Модуль 
json
также 
может использоваться для обмена данными между программами Python. Более 
того, формат данных JSON не привязан к Python, поэтому данные в этом формате 
можно передавать программам, написанным на многих других языках програм-
мирования. Это полезный и универсальный формат, который к тому же легко 
изучается.
ПРИМЕЧАНИЕ
Формат JSON (JavaScript Object Notation) был изначально разработан для JavaScript . Впрочем, 
с того времени он стал использоваться во многих языках, включая Python .
Функции json .dump() и json .load()
Напишем короткую программу для сохранения набора чисел и другую программу, 
которая будет читать эти числа обратно в память. Первая программа использует 
функцию 
json.dump()
, а вторая — функцию 
json.load()
.
Функция 
json.dump()
получает два аргумента: сохраняемые данные и объект фай-
ла, используемый для сохранения. В следующем примере 
json.dump()
используется 
для сохранения списка чисел:
number_writer.py
import json
numbers = [2, 3, 5, 7, 11, 13]
 
filename = 'numbers.json'
 
with open(filename, 'w') as f_obj:
 
json.dump(numbers, f_obj)
Программа импортирует модуль 
json
и создает список чисел для работы. В точке 

выбирается имя файла для хранения списка. Обычно для таких файлов принято 
использовать расширение 
.json
, указывающее, что данные в файле хранятся в фор-


Сохранение данных
205
мате JSON. Затем файл открывается в режиме записи, чтобы модуль 
json
мог запи-
сать в него данные 

. В точке 

функция 
json.dump()
используется для сохранения 
списка 
numbers
в файле 
numbers .json
.
Программа ничего не выводит, но давайте откроем файл 
numbers .json
и посмотрим 
на его содержимое. Данные хранятся в формате, очень похожем на код Python:
[2, 3, 5, 7, 11, 13]
А теперь напишем следующую программу, которая использует 
json.load()
для чтения списка обратно в память:
number_reader.py
import json
 
filename = 'numbers.json'
 
with open(filename) as f_obj:
 
numbers = json.load(f_obj)
print(numbers)
В точке 

для чтения данных используется тот же файл, в который эти данные 
были записаны. На этот раз файл открывается в режиме чтения, потому что Python 
нужно только прочитать данные из файла 

. В точке 

функция 
json.load()
ис-
пользуется для загрузки информации из 
numbers .json
; эта информация сохраняется 
в переменной 
numbers
.
Наконец, программа выводит прочитанный список. Как видите, этот тот же список, 
который был создан в программе 
number_writer .py
:
[2, 3, 5, 7, 11, 13]
Модуль 
json
позволяет организовать простейший обмен данными между про-
граммами.
Сохранение и чтение данных, сгенерированных пользователем
Сохранение с использованием модуля 
json
особенно полезно при работе с данны-
ми, сгенерированными пользователем, потому что без сохранения эта информа-
ция будет потеряна при остановке программы. В следующем примере программа 
запрашивает у пользователя имя при первом запуске программы и «вспоминает» 
его при повторных запусках.
Начнем с сохранения имени пользователя:
remember_me.py
import json
 
username = input("What is your name? ")
filename = 'username.json'
with open(filename, 'w') as f_obj:
 
json.dump(username, f_obj)
 
print("We'll remember you when you come back, " + username +
"!")


206

Достарыңызбен бөлісу:
1   ...   121   122   123   124   125   126   127   128   ...   266




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет