【发布时间】:2014-11-12 23:06:53
【问题描述】:
我正在 Python 3.4.0 中制作文本 RPG,并且正在制作保存数据。
我的程序可以创建文件,但是当它尝试读取文件时,它只读取第一行。
如何制作程序以便单独读取这些行以及如何在我的程序中使用这些行?
import os.path
import time
import pickle
save_data = open("Text_RPG_save_data.dat", "wb")
load_data = open("Text_RPG_save_data.dat", "rb")
def data_save():
print("Saving progress...")
user_name = input("Enter your username.")
level = str(0)
pickle.dump("user_name = " + user_name, save_data)
pickle.dump("\nlevel = " + level, save_data)
save_data.close()
print("Save successful.")
def data_load():
print("Loading progress...")
loaded_data = pickle.load(load_data)
print(loaded_data)
load_data.close()
print("Load successful.")
def data_delete():
os.remove("Text_RPG_save_data.dat")
data_save()
data_load()
delete_affirm = input("Would you like to delete your progress? Y/N")
if delete_affirm == "Y":
data_delete()
time.sleep(5)
if delete_affirm == "N":
time.sleep(5)
当前结果:
Loading progress...
user_name = Foo
Load successful.
预期结果:
Loading progress...
Welcome, Foo! You are currently level 0.
Load successful.
【问题讨论】:
-
在代码、预期输出和错误方面的上下文将有所帮助。
-
Cees 有这个想法。 Pickle 适用于 an 对象,在您的情况下是字符串。如果要存储多个对象,则必须将它们组合在字典或其他类型的容器中。
-
@Mike 谢谢,但是dumping multiple times is allowed。不过,我认为这是不灵活且容易出错的。