tkinter.filedialog.asksaveasfilename保存文件的速度很慢

时间:2019-05-13 22:17:43

标签: python-3.x tkinter

我注意到tkinter filedialog asksaveasfilename保存文件需要3秒或更长时间。正常吗有没有办法使其更快? (记事本或记事本++比它快) Python 3.7

示例

import tkinter
import tkinter.filedialog
import tkinter.scrolledtext


class app:

    def __init__(self):
        self._root= tkinter.Tk()
        self._root.grid()
        self._text= tkinter.Text(self._root)
        self._text.grid()
        self.menubar = tkinter.Menu(self._root)
        self.filemenu  = tkinter.Menu(self.menubar) 
        self.filemenu.add_command(label="Salva", command=self._save)
        self.menubar.add_cascade(label="File", menu=self.filemenu) 
        self._root.config(menu=self.menubar)

    def _save(self):
        path = tkinter.filedialog.asksaveasfilename(title="Save")
        if len(path) > 0:
            with open(path, "w") as f:
                f.write(self._text.get("1.0", "end-1c"))

    def show(self):
        self._root.mainloop()

a=app()
a.show()

1 个答案:

答案 0 :(得分:0)

我测试了提供的代码,它在不到毫秒的时间内保存了文件。 您是否使用时间功能来检查保存时间?如果这样做了,您必须确保先标记开始时间,然后再询问用户文件位置,否则它将包括用户选择他们想要的文件位置所花费的时间。

def _save(self):

    # Do Not Start timer here
    path = tkinter.filedialog.asksaveasfilename(title="Save")

    # Start timer here
    start = time.time()

    if len(path) > 0:
        with open(path, "w") as f:
            f.write(self._text.get("1.0", "end-1c"))

    print(time.time() - start)