Получить результат кнопки, которая запускает askopenfilename - PullRequest
0 голосов
/ 26 июня 2019

У меня есть кнопка, которая запускает функцию askopenfilename.

filebutton = tk.Button(text = "Choose file ...",
                       command = lambda: openfile())

Это функция openfile:

def openfile():
    filename = tkinter.filedialog.askopenfilename(filetypes = (("Excel", "*.xlsx"), 
                                                               ("All files", "*.*")))
    print(filename)

Все работает, как и ожидалось, имя файлавыводится на консоль.Но то, что я действительно хочу, это сохранить имя файла в переменную, чтобы я мог читать данные из таблицы Excel с пандами:

Data = pd.read_excel(filename)

Как мне этого добиться?Или есть ли лучший способ с другими функциями?

1 Ответ

1 голос
/ 26 июня 2019

Вы не можете получить данные при вызове функции кнопок.Если у вас есть глобальная переменная

def openfile():
    global filename = tkinter.filedialog.askopenfilename(filetypes = (("Excel", "*.xlsx"), 
                                                               ("All files", "*.*")))
    print(filename)

, вы можете получить к ней доступ из-за пределов функции, вызываемой кнопкой.

В прошлом я справлялся с этим с помощью классов,Этот учебник онлайн разбивает программу tkinter на классы.Если вы следуете этой структуре, вы можете создать переменную класса filename.Это позволит вам манипулировать файлом в этом экземпляре класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...