Вам не нужно возвращать значение, когда вы непосредственно присваиваете значение глобальной переменной.
Я также думаю, что способ написания вашей метки неортодоксален.То, что вы хотите сделать, может быть сделано с одним набором кавычек.
Когда у меня есть известная глобальная переменная, я сначала определяю ее перед чем-либо.
Ваш оператор print(y)
не работает как выдумаю, что это так.Он запускается только один раз в начале вашей программы, и в данный момент он запускается y
не равно ничему.
Вам необходимо переместить оператор print в функцию.
Обновление: я добавил кнопку, чтобы помочь с вашим комментарием ниже.Эта кнопка напечатает текущее сохраненное значение y
.
Приведенный ниже код является переделкой вашего кода.
from tkinter import Tk, Button, filedialog, Label
root = Tk()
y = ""
root.title("test")
def openfiledialog():
global y
y = filedialog.askopenfilename(initialdir = "/",title = "Select file",filetypes = (("text file","*.txt"),("all files","*.*")))
def check_path():
global y
print(y)
file_button = Button(root, text='Select File', command=openfiledialog)
file_button.pack()
exit_button = Button(root, text='Exit Program', command=root.destroy)
exit_button.pack()
w = Label(root, text="\nStep 1: Make sure the URL's in file are properly formatted, one URL per line\n\nStep 2: Select file\n\nStep 3: click run")
w.pack()
Button(root, text="Print current saved path", command = check_path).pack()
root.mainloop()