Explicitly waiting the subprocess will solve your problem. (using subprocess.Popen.wait
)
def callDuff():
print "Call back works"
proc = subprocess.Popen("python duff.duplicateFileFinder\duff.py", shell=True)
#^^^^^^
kill_window()
proc.wait() # <-----
BTW, root.withdraw()
does not terminate the program. It just hide the main window.