プログラミングクラスにTkinterを使用し始めたばかりで、ファイルダイアログハンドラを使用するのに少し問題があります。 fileopenとfilesaveasメソッドは正しく動作しますが、filesaveメソッドは正しく動作しません。 仕様では、filesaveメソッドが最後に保存されたファイルに保存する必要があります。ファイルが保存されていない場合は、最後に開いたファイルに保存します。それ以外の場合は、デフォルト名のquiz_spec.pyに保存します。何らかの理由で、最初の2回の書き込み呼び出しは、ファイルに到達したときにファイルを保存していないように見えます(エラーも発生していません)。 誰かが同じセーブコールfilesaveasとfilesaveは異なった働きをしており、tkFileDialog save関数の良い例を指摘しています。tkFileDialog filesaveメソッドが動作しない
ファイルがself.lastopen
を処理し、
self.lastsave
はあなたが
filesave
を呼び出す時点で
False
の一部と同等に設定されていることを私にはかなり明確
class FileMan():
def __init__(self):
self.lastsave = None
self.lastopen = None
def fileopen(self):
handle = askopenfile(mode = 'r')
print "name of file you picked = "+str(handle.name)
self.lastopen = handle
print "first line of data from file: "+handle.readline()
def filesave(self):
if (self.lastsave):
self.lastsave.write("Save: Some data to save into the file\n")
elif (self.lastopen):
self.lastopen.write("Save: Some data to save into the file\n")
else:
handle = open('quiz_spec.py', 'w')
handle.write("Save: This is the new content of test.txt :-)")
def filesaveas(self):
handle = asksaveasfile(mode = 'w', defaultextension = '.py')
print "name of file you picked = "+str(handle.name)
self.lastsave = handle
handle.write("SaveAs: Some data to save into the file\n")
幸い私の友人ですか? –