作者warain (空白)
看板Python
标题[问题] 区域,全域变数问题求解
时间Mon Mar 6 19:57:32 2017
各位版友好,最近遇到了一个问题,不知是否能拨空帮忙看要如何修改
问题是用tkinter的filedialog选取档案,然後将所选取的路径丢给excel处理
看起来问题是函式内的区域变数无法拿到全域使用,但google了好一阵子仍不知如何修改
麻烦各位帮个忙
感激不尽!
Fail讯息如下
NameError: name 'report_fileselect' is not defined
code如下:
import tkinter
from openpyxl import load_workbook
from tkinter import filedialog
root = tkinter.Tk()
Text_0 = tkinter.Label(root, text="Select")
Text_0.grid(row=0, column=0)
def report_select():
combine_fileselect =
filedialog.askopenfilenames(title="Choose file",multiple=True,filetypes=[("xlsm files","*.xlsm")])
BTN_0 =tkinter.Button(root,width=12,text="",command=report_select,borderwidth=4)
BTN_0.grid(row=0, column=1,sticky="WE")
def QPD_select():
global report_fileselect
report_fileselect=
filedialog.askopenfilename(initialdir="c:",title="Choose
QPD",filetypes=[("xlsm files","*.xlsm")])
BTN_1 =
tkinter.Button(root,width=12,text="",command=QPD_select,borderwidth=4)
BTN_1.grid(row=1, column=1,sticky="WE")
wb = load_workbook(report_fileselect, keep_vba=True, read_only=False)
sheet = wb.get_sheet_by_name("Result")
root.mainloop()
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.251.88.57
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1488801457.A.E3D.html
1F:→ jack123218: Global 要设在function外面? 03/06 20:19
2F:→ zerof: ...你 global 根本没有 report_fileselect 的 define, 就算 03/06 20:59
3F:→ zerof: 在 def 里面用 global 也没用吧...... 03/06 21:00
4F:→ zerof: root 後面加一行 report_fileselect = None 应该就可以了 03/06 21:01
5F:→ physheepy: 如楼上说的 或者让 QPD_select回传 report_fileselect 03/07 12:40
6F:→ physheepy: add "return report_fileselect" in QPD_select 03/07 12:41