我编写了一个可执行程序,它显示用户请求的数据。 数据是从与我相关的信息的嵌套字典中获得的,这些信息被导入到程序中。 它起作用了。 问题:有没有可能有一个程序通过用户输入创建一个数据字典(与用户相关),到一个保存的文件? 我可以让我程序打开该文件并使用它的数据。 我是python的新手,所以我可能不知道我是怎么做的。 保罗
您可以使用内置模块Pickle来完成此操作。 这段代码将允许用户输入一个姓名和一个年龄,并且它将一直询问数据,直到用户没有为年龄输入任何内容:
import pickle
d = {}
while True:
name = input("Input your name: ") # Ask for name
if not name: # Break out of the loop when the user enters nothing
break
age = int(input("Input your age: ")) # Ask for age
d.update({name:age}) # Update d with given name and age
with open('dict.pickle','wb') as file: # Open a file to store dictionary
pickle.dump(d,file) # Use pickle to dump in the dictionary
它将把数据存储在pickle文件中,当您想要使用这些数据时,您可以做以下工作:
import pickle
with open('dict.pickle','rb') as file:
d = pickle.load(file) # Use pickle to load the dictionary into variable d
print(d)
输出:
{'a': 1, 'b': 2, 'c': 3}
如果我理解正确的话,在Python中有一种方法可以做到这一点。
首先打开保存文件,如下所示:
with open("C:\path\to\the\save\file.pkl", "w") as save_file:
save_file.write("This is written to the file!")
由于带有satatement,python负责关闭文件处理程序,因此您不必担心这个问题。
我不确定字典的关键字和值是什么,但是让我们假设您有一个用户id和他的数据。 现在只需从用户处读取并将其存储到字典中,如下所示
main_dictionary = {}
id = int(input("Enter user ID> "))
data = input("Input user data> ")
main_dictionary[id] = data
接下来,您希望能够保存并从文件中加载字典。 为此使用pickle库,因为它非常容易使用:
try:
import cPickle as pickle
except ImportError: # python 3.x
import pickle
# stores the dictionary inside the "C:\path\to\the\save\file.pkl"
pickle.dump(main_dictionary, save_file, protocol=pickle.HIGHEST_PROTOCOL)
要加载字典,只需编写:
with open('C:\path\to\the\save\file.pkl', 'rb') as save_file:
main_dictionary= pickle.load(save_file)
完整的程序应该如下所示:
try:
import cPickle as pickle
except ImportError: # python 3.x
import pickle
main_dictionary = {}
with open("C:\path\to\the\save\file.pkl", "rb") as save_file:
main_dictionary= pickle.load(save_file)
id = int(input("Enter user ID> "))
data = input("Input user data> ")
main_dictionary[id] = data
with open('C:\path\to\the\save\file.pkl', 'wb') as save_file:
pickle.dump(main_dictionary, save_file, protocol=pickle.HIGHEST_PROTOCOL)
希望那有用