在python中保存和读取文件中的数据? [复制]
Posted
技术标签:
【中文标题】在python中保存和读取文件中的数据? [复制]【英文标题】:Save and read data from a file in python? [duplicate] 【发布时间】:2017-10-24 03:35:53 【问题描述】:我成功创建了一个游戏,但我无法保存分数。
我一直在尝试将用于指向的变量保存到一个文本文件中,并且已经成功地做到了这一点,但我希望在程序启动时能够从中读取它。
我的保存代码如下。
def Save():
f.open("DO NOT DELETE!", "w+")
f.write(str(points))
f.close()
【问题讨论】:
这里有什么问题?你似乎知道如何open
和write
。尝试阅读有关read
方法的文档
给初学者的提示:查看pickle
主要问题是我需要读取文件,然后将其设置为变量。我正在为此苦苦挣扎,因为如果文件不存在,它会尝试从不存在的文件中读取。我已经尝试过 if 语句和所有内容,但无法使其正常工作。
【参考方案1】:
我建议您使用pickle 库。进一步阅读:Python serialization - Why pickle (Benefits of pickle)。至于你的问题,
我很挣扎,因为如果文件没有 存在,它正在尝试从不存在的文件中读取。
您可以使用try...except...
子句捕获FileNotFoundError
import pickle as pkl
# to read the highscore:
try:
with open('saved_scores.pkl', 'rb') as fp:
highscore = pkl.load(fp) # load the pickle file
except (FileNotFoundError, EOFError): # error catch for if the file is not found or empty
highscore = 0
# you can view your highscore
print(highscore, type(highscore)) # thanks to pickle serialization, the type is <int>
# you can modify the highscore
highscore = 10000 # :)
# to save the highscore:
with open('saved_scores.pkl', 'wb') as fp:
pkl.dump(highscore, fp) # write the pickle file
【讨论】:
感谢您。这不是我正在寻找的东西,但是有效,如果出现另一种情况,我会记住这一点。很有用! :)以上是关于在python中保存和读取文件中的数据? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
读取和解析 TSV 文件,然后对其进行操作以保存为 CSV(*高效*)
java定时器读取指定文件夹中文件名称和创建时间保存到数据库后复制文件到另外文件夹中后删除