我想寫一個非常簡單的腳本來模擬一個口袋裏的祕書作業,但我有一個小問題。 我希望每次退出程序時都將所有數據保存在一個文件中(抽象形式),然後當我啓動它時,我想讀取該文件,eval(堆棧)(基本上將數據加載到內存中),然後驗證如果它是有效的......任何不是被刪除的。 這是我做了什麼:Python試圖將字符串寫入文件然後讀取字符串和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()
當我看着文件我的問題是...,因爲它缺少撇號<它不是一個真正的字符串「>因此,當我嘗試」的eval(堆棧)「出了點問題,我的」記憶「最終變空了(當我試圖打印堆棧時,它是空的 - 無 - )
我不能爲我的生活理解爲什麼會發生這種情況。 (在.txt文件中人工添加撇號)
我不知道如何檢查文件是否爲空或者如果我讀取空格y線,所以我也很感激你是否可以用「loadFromString」中的「if」語句來幫助我。 關於eval()...就像我說的這只是作業,所以我不害怕任何惡意的意圖。