Словарь в Python используется для хранения пар ключ-значение. Иногда нам может понадобиться сохранить словарь непосредственно в файл. В этой статье мы разберем, как это сделать.
Примечание. Больше о словарях в Python можно почитать в статье “Словари в Python и работа с ними”.
Сохранение словаря в файл с помощью строк
Чтобы сохранить словарь в файл, мы можем сначала преобразовать словарь в строку, а затем сохранить строку в текстовом файле. Для этого мы выполним следующие шаги:
- Сначала мы преобразуем словарь в строку с помощью функции
str()
. Функцияstr()
принимает объект в качестве входных данных и возвращает его строковое представление. - Получив строковое представление словаря, мы откроем текстовый файл в режиме записи с помощью функции
open()
. Функцияopen()
принимает имя файла и режим в качестве входных аргументов и возвращает объект файлового потока, скажем, myFile. - После получения объекта файлового потока myFile мы запишем строку в текстовый файл с помощью метода
write()
. Методwrite()
при вызове для файлового объекта принимает строку в качестве входного аргумента и записывает ее в файл. - После выполнения метода
write()
мы закроем файловый поток с помощью методаclose()
.
Следуя этим шагам, вы сохраните словарь в файл в виде строки. После сохранения словаря в файл вы можете проверить содержимое файла, открыв его.
В следующем коде мы сохранили словарь Python в файл.
myFile = open('sample.txt', 'w') myDict = {'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'} print("The dictionary is:") print(myDict) myFile.write(str(myDict)) myFile.close() myFile = open('sample.txt', 'r') print("The content of the file after saving the dictionary is:") print(myFile.read())
Результат:
The dictionary is:{'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'} The content of the file after saving the dictionary is:{'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'}
Как сохранить словарь в файл в двоичном формате
Вместо того, чтобы хранить словарь в виде текста, можно сохранить его в двоичном формате. Для этого мы будем использовать модуль pickle в Python. Чтобы сохранить словарь в файл с помощью модуля pickle, мы выполним следующие шаги:
- Сначала мы откроем файл в двоичном режиме записи (wb) с помощью функции
open()
. Функцияopen()
принимает имя файла и режим в качестве входных аргументов и возвращает объект файлового потока, скажем, myFile. - Модуль pickle предоставляет нам метод
dump()
, с помощью которого мы можем сохранить словарь в двоичном формате в файл. Методdump()
принимает объект в качестве первого аргумента и файловый поток в качестве второго аргумента. После выполнения он сохраняет объект в файл в двоичном формате. Мы передадим словарь в качестве первого аргумента, а myFile — в качестве второго аргумента в методdump()
. - После выполнения метода
dump()
мы закроем файл с помощью методаclose()
.
Ниже приведен код для сохранения словаря в файл.
import pickle myFile = open('sample_file', 'wb')myDict = {'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'} print("The dictionary is:") print(myDict) pickle.dump(myDict,myFile) myFile.close()
Сохранив словарь в двоичном формате, мы можем извлечь его с помощью метода load()
из модуля pickle. Метод load()
принимает файловый поток, содержащий объект Python в двоичной форме, в качестве входного аргумента и возвращает объект Python. После сохранения словаря в файл с помощью метода dump()
мы можем воссоздать словарь из файла, как показано ниже.
import pickle myFile = open('sample_file', 'wb') myDict = {'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'} print("The dictionary is:") print(myDict) pickle.dump(myDict,myFile) myFile.close() myFile = open('sample_file', 'rb') print("The content of the file after saving the dictionary is:") print(pickle.load(myFile))
Выход:
The dictionary is:{'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'}The content of the file after saving the dictionary is:{'Roll': 4, 'Name': 'Joel', 'Language': 'Golang'}
Итак, мы разобрали два способа сохранения словаря в файл в Python: в строковом и двоичном формате. Спасибо за внимание и успешного кодинга!
Перевод статьи Aditya Raj “How To Save a Dictionary to File in Python”.