📜  将字典保存到文件

📅  最后修改于: 2022-05-13 01:54:56.476000             🧑  作者: Mango

将字典保存到文件

Python中的字典是一个集合,其中每个值都映射到一个键。它们是无序的、可变的,并且对存储在字典中的值和键的数据类型没有限制。这使得将字典存储为文件变得很棘手。在此处了解有关词典的更多信息。

句法:

dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}

将字典保存到文件

使用Python将字典保存到文件中有两种主要方法。

1. 文本文件

在Python中保存字典的最基本方法是将它们作为字符串存储在文本文件中。此方法将包括以下步骤:

  • 以写入/附加文本模式打开文件
  • 将字典转换为字符串
  • 使用 write函数将转换后的字符串输入文件
filehandler = open(filename, 'wt')
data = str(dictionary)
filehander.write(data)

从存储的文本文件中读回字典很麻烦,这种方法只能用于较小的非关键程序。

2.泡菜模块(推荐)

Python中的 pickle 模块主要用于数据科学等数据持久性至关重要的领域。 pickle 模块将给定的数据作为序列化的字节序列存储到文件中,以便以后轻松检索。 Pickle 模块支持各种Python对象,字典就是其中之一。此方法将包括以下步骤:

  • 导入泡菜模块
  • 以写入/追加二进制模式打开文件
  • 使用 pickle 模块的转储方法将数据输入文件
filehandler = open(filename, 'wb')
pickle.dump(dictionary, filehandler)

下面是上述方法的实现。

示例 1:写入文本文件

Python3
dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile.txt', 'wt')
    geeky_file.write(str(dictionary))
    geeky_file.close()
  
except:
    print("Unable to write to file")


Python3
dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile.txt', 'a')
    geeky_file.write(str(dictionary))
    geeky_file.close()
  
except:
    print("Unable to append to file")


Python3
import pickle
  
dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile', 'wb')
    pickle.dump(dictionary, geeky_file)
    geeky_file.close()
  
except:
    print("Something went wrong")


输出:

示例 2:附加到文本文件

Python3

dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile.txt', 'a')
    geeky_file.write(str(dictionary))
    geeky_file.close()
  
except:
    print("Unable to append to file")

输出:

示例 3:使用 Pickle 模块编写

Python3

import pickle
  
dictionary = {'geek': 1, 'supergeek': True, 4: 'geeky'}
  
try:
    geeky_file = open('geekyfile', 'wb')
    pickle.dump(dictionary, geeky_file)
    geeky_file.close()
  
except:
    print("Something went wrong")

注意:由于pickle模块以二进制形式存储数据,因此文件中的数据是人类无法读取的。