Словарь в 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».
