将字典保存到文件
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模块以二进制形式存储数据,因此文件中的数据是人类无法读取的。