我在
Python Tkinter中编写了一个应用程序.我最近注意到,对于其中一个操作,如果该操作失败,它有时会关闭(不会给出任何错误).我写了一个小程序来说明问题: –
import os
from Tkinter import *
def copydir():
src = "D:\\a\\x\\y"
dest = "D:\\a\\x\\z"
os.rename(src,dest)
master = Tk()
def callback():
global master
master.after(1, callback)
copydir()
print "click!"
b = Button(master, text="OK", command=copydir)
b.pack()
master.after(100, callback)
mainloop()
要重现该问题,请在“ms命令提示符”中打开它将重命名的文件夹,以便重命名它将从Tkinter代码中引发异常.
我的原始代码是使用线程并且还在执行其他任务,因此我尝试使此测试脚本中的操作尽可能相似.
现在,如果我通过双击它来运行此代码,那么程序只需关闭而不会抛出任何错误.但是,如果我从控制台运行此脚本,那么异常消息将被转储到控制台上,至少我知道,出了点问题.
我可以通过在尝试重命名的代码中使用try / catch来修复此代码,但我也想告知用户这个失败.所以我只想知道在编写Tkinter应用程序时应该遵循哪些编码方法,我想知道: –
1)每当用户通过双击它运行它时,我可以让我的脚本转储一些文件堆栈跟踪.通过这个至少,我会