gpt4 book ai didi

python - tkFileDialog 文件保存方法不起作用

转载 作者:行者123 更新时间:2023-11-28 23:05:00 26 4
gpt4 key购买 nike

我刚开始在编程类(class)中使用 Tkinter,但在使用文件对话框处理程序时遇到了一些麻烦。 fileopen 和 filesaveas 方法可以正常工作,但 filesave 方法不能。规范要求filesave方法应该保存到上次保存的文件;如果没有保存文件,则保存到最后打开的文件;否则保存为默认名称 quiz_spec.py。出于某种原因,前两个写入调用似乎没有在到达时保存文件(并且也没有产生任何错误。)如果有人能告诉我为什么 filesaveas 和 filesave 中的相同保存调用的功能不同,并指出 tkFileDialog 保存功能的一个很好的例子,我将不胜感激。

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")

最佳答案

我很清楚你的文件句柄 self.lastopenself.lassave 被设置为一些等同于 False 的时候你调用 filesave。您是否检查过它们在您的 fileopenfilesave 函数退出后是否仍然存在?以这种方式调试非常简单,尝试:

my_man = FileMan()
my_man.fileopen()
my_man.filesave()
print my_man.lastopen
print my_man.lastsave

如果这不起作用,请尝试使用此结果更新您的问题,我们将从那里开始。此外,您应该检查是否:

print my_man.lastopen == False and my_man.lastsave == False

关于python - tkFileDialog 文件保存方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6798312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com