さまざまなオブジェクトを(クラスとオブジェクトを使用して)作成し、それらをファイルに保存して後で編集または取得しようとしています。しかし、このように見えます。
GlobalCategories=[]
GlobalContent=[]
def LoadData(x,y):
import pickle
with open('bin.dat') as f:
x,y = pickle.load(f)
def SaveData(x,y):
import pickle
with open('bin.dat', 'wb') as f:
pickle.dump([x,y], f)
def Loader(x,y):
try:
LoadData(x,y)
except:
SaveData(x,y)
これは、情報をリストに保存する方法を示す保存のスニペットです (テーマはクラスで、他のものはそのクラスのメソッドです):
newtheme=Tema()
newtheme.setInfo_name(newstr)
newtheme.setInfo_code(newcode)
GlobalCategories.append(newtheme)
SaveData(GlobalContent,GlobalCategories)
XとYは、オブジェクトを保存するグローバルリストです(各オブジェクトのメモリに方向を保存することに気付きました)。最初に実行すると、ファイルが作成され、ファイルに情報が保存されますが、閉じるともう一度実行して情報を読み込もうとすると、プログラムは情報を消去し、ファイルを再度作成するため、保存されていたものはすべて失われます。
これがオブジェクトを格納するための適切な方法なのか、それともより良い方法があるのか どうかはわかりません。アドバイスをいただければ幸いです。
@abernert: ありがとう abarnert! 私がやりたいことは、2 つのリストを含むリストを保存することです。たとえば、1 つのリストはメーカー (トヨタ、ニッサンなど) を保存し、もう 1 つのリストは車のモデル (ツンドラ、ムラーノ) を保存します。各要素は、作成時にリストに追加するオブジェクトです。
newtheme=Theme()
newtheme.setInfo_name(newstr)
GlobalCategories.append(newtheme)
これは、オブジェクトをグローバル リストに保存する方法です。GlobalCategories は、プログラムを終了した後でロードしたい 2 つのリストの 1 つです (例の自動車会社のリストのようになります)。ここで、シェルを閉じていないときにリストからオブジェクトを取得して編集できるため、プログラムを閉じて再起動した後にリストからオブジェクトをロードすることに問題があります。プログラムを起動したら、後で操作できるように、メーカーと車のオブジェクトをそれぞれのリストにロードして保存する必要があります。abernert もう一度ありがとう!