所以这是我的完整代码。我想要的只是通过特定文件夹中的工作表将excel文件附加到一个excel。它的GUI有3个按钮浏览,追加和退出。如何从浏览文件夹(文件名)中获取路径值?谢谢
from tkinter import *
from tkinter.filedialog import askdirectory
import tkinter as tk
import glob
import pandas as pd
import xlrd
root = Tk()
def browsefunc():
filename = askdirectory()
pathlabel.config(text=filename)
return filename
def new_window():
all_data = pd.DataFrame()
all_data1 = pd.DataFrame()
path = browsefunc()+"/*.xlsx"
for f in glob.glob(path):
df = pd.read_excel(f,sheetname='Scoring',header=0)
df1 = pd.read_excel(f,sheetname='Sheet1',header=0)
all_data = all_data.append(df,ignore_index=False)
all_data1 = all_data1.append(df1,ignore_index=True)
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
all_data.to_excel(writer, sheet_name='Scoring')
all_data1.to_excel(writer, sheet_name='Sheet1')
writer.save()
browsebutton = Button(root, text="Browse", command=browsefunc).pack()
Button(root, text='Append', command=new_window).pack()
Button(root, text='quit', command=root.destroy).pack()
pathlabel = Label(root)
pathlabel.pack()
mainloop()
答案 0 :(得分:1)
您所询问的内容并不完全清楚,那么您可以将问题编辑为更具体吗?
我认为你试图让局部变量longest
(来自函数20
)能够作为全局变量在函数外部访问。使用filename
。 This tutorial很好地解释了。
在browsefunc
结尾处添加
return
当你致电browsefunc
时,你就跑了
return filename
将变量fdback分配给您从browsefunc返回的任何内容。它可以是整数,浮点数,字符串或列表等。
所以,最终的代码是:
browsefunc
我建议使用更明确的变量和函数名称。