我使用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()
打印正确的路径,但是,代码末尾的相同语句只给出,它在开始时被初始化为。我一直在试图弄清楚为什么会这样,并找到解决方法。任何帮助都会很精彩!
想知道它是否与易变变量有关
提前致谢!
答案 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