我试图写一个非常简单的脚本,模拟袖珍秘书来做我的作业,但我有一个小问题。 我希望每次退出程序时我的所有数据都保存在一个文件中(抽象形式),然后当我启动它时,我想读取该文件,eval(堆栈)(基本上是将数据加载到内存中),然后验证它是否有效。。。任何未被删除的内容都将被删除。 这就是我所做的:
def loadToString (stack):
f = open ("data.txt", "w")
load_stack = str(stack) #convert to string
f.write (load_stack) #write in file
f.close()
def loadFromString ():
f = open ("data.txt", "r")
load_stack = f.readline() #read string
if (load_stack == "" or load_stack == " " or load_stack == None):
stack = []
return stack
else:
stack = eval(load_stack) #trying to convert from string to list
f.close ()
当我查档案的时候。。。当“我的记忆真的空了”的时候,它就没有了
我一辈子都不明白为什么会发生这种事。我也可以快速修复(在.txt文件中人为地添加撇号)
我不知道如何检查一个文件是空的还是我读了一个空行,所以如果您能帮助我处理“loadFromString”中的“if”语句,我将不胜感激。 关于eval()。。。就像我说的,这只是家庭作业,所以我不怕任何恶意。在
要处理眼前的问题,请将
load_stack = str(stack)
更改为load_stack = repr(stack)
。这会加上撇号。在之后,您可能需要查看csv module或{a2}。这两种方法都很容易使用,并且可以处理许多低层次的细节。在
相关问题 更多 >
编程相关推荐