【问题标题】:How to get file name from one functuion to work in another如何从一个函数获取文件名以在另一个函数中工作
【发布时间】: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


【解决方案1】:

尝试将变量路径设为全局:

def Upload():
    global path
    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():
    global path
    workbook = load_workbook(filename=path.name)

【讨论】:

    猜你喜欢
    • 2018-11-13
    • 1970-01-01
    • 2022-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多