获取保存文件的目录(tkinter filesave提示符)

时间:2018-05-29 11:48:40

标签: python user-interface events tkinter volatile

我使用tkinter在python中创建一个小GUI,其中一部分是询问用户保存文件的位置。 这是我的代码

from tkinter import *
import tkinter.filedialog as tf
import tkinter
import time

fileName = ""
def save():
    myFormats = [
    ('Text File','*.txt')
    ]
    root = tkinter.Tk()
    q = tf.asksaveasfilename(parent=root,filetypes=myFormats ,title="Save the image as...")
    print(type(q))
    fileName = q
    print(fileName)
    if len(fileName ) > 0:
        print ("Now saving under %s" % fileName)


master = Tk()
Button(master, text='Save file', command=save).grid(row=3, column=1, sticky=W, pady=4)
print(fileName)

mainloop( )
print(fileName)

print(fileName)里面的save()打印正确的路径,但是,代码末尾的相同语句只给出,它在开始时被初始化为。我一直在试图弄清楚为什么会这样,并找到解决方法。任何帮助都会很精彩!

想知道它是否与易变变量有关

提前致谢!

1 个答案:

答案 0 :(得分:2)

由于范围规则,fileName内的save变量与全局命名空间中的变量fileName不同。如果要引用全局变量,请使用global关键字:

def save():
    myFormats = [('Text File','*.txt')]
    root = tkinter.Tk()
    q = tf.asksaveasfilename(parent=root,
            filetypes=myFormats,
            title="Save the image as...")
    global fileName
    fileName = q