我刚刚开始使用Python 3.4.0中的Pickle模块并尝试将其应用于处理类别和单词的简单程序。到目前为止,它按计划存储了所有内容,但是当我尝试加载我放入文件的内容时,结构似乎是空的:
new_data = int(input("New Data File?\n 1 = Yes\n 0 = No\nChoice: "))
if (new_data == 1):
f = open('data.txt', 'wb+')
data_d = {}
pickle.dump(data_d, f)
f.close()
PrMenu()
option = int(input("Option: "))
f = open('data.txt', 'rb+')
d = pickle.load(f)
#Functions inside this menu loop receive the structure (Dictionary)
#and modify it accordingly (add/modify/clear category/word), no
#pickling/unpickling is involved
while (option != 0):
if (option == 1):
add_c(d)
elif (option == 2):
modify_c(d)
elif (option == 3):
clear_c(d)
elif (option == 4):
add_w(d)
elif (option == 5):
modify_w(d)
elif (option == 6):
clear_w(d)
elif (option == 7):
pr_cw(d)
elif (option == 8):
pr_random(d)
if (option != 0):
PrMenu()
option = int(input("Option: "))
#the output structure would be eg. {category_a:[word1, word2, word3, ...], category_b:[..., ...]}
pickle.dump(d, f)
f.close()
print("End of Program")
我不确定问题出在哪里,我希望我足够清楚。
感谢。
答案 0 :(得分:0)
您正在将数据附加到您的文件中。所以第一个数据集是您读入的空字典,第二个数据集是填充字典,您再也不会读取它。你必须在写作之前回到0。