【发布时间】:2022-01-01 01:56:06
【问题描述】:
我有 2 个功能(上传和计算):第一个打开文件并写入其名称(使用按钮); 2nd 应该使用这个文件中的数据(excel 文件,也将在按下按钮后启动)。第一部分运行良好,但第二部分我不明白如何从第一个函数(获取文件)获取文件名以在第二个函数(处理文件中的数据)中工作。
import tkinter as tk
from tkinter import Label, Pack, filedialog
from tkinter.constants import CENTER, LEFT
from tkinter.filedialog import askopenfilename
from pathlib import Path
from openpyxl import Workbook
import os
global filename
def Upload():
filename = filedialog.askopenfilename()
filepath=filename
path=Path(filepath)
#print(path.name)
#вставить проверку расширения файла
label2 = Label(text=path.name, font="Arial 17", justify=LEFT)
label2.place(relx=0.35, rely=.13)
#print('Selected:', filename)
return(path.name)
def Calc():
workbook = load_workbook(filename=path.name)
root= tk.Tk()
canvas1 = tk.Canvas(root, width = 300, height = 300)
canvas1.pack()
button1 = tk.Button(text='Open File',command=Upload, bg='purple',fg='white')
button1.place (relx = 0.5, rely = 0.5, anchor=CENTER)
button2 = tk.Button(text='Calculate',command=Calc, bg='purple',fg='white')
button2.place (relx = 0.5, rely = 0.6, anchor=CENTER)
label1 = Label(text= 'Выбраный файл:', fg="#eee", bg="#333")
label1.place(relx = 0.5, y=20, anchor=CENTER)
canvas1.create_window(150, 150, window=button1)
root.mainloop()
【问题讨论】:
-
你可以在
Upload()里面声明global path。
标签: python python-3.x file tkinter