Python在函数

时间:2017-01-12 13:02:03

标签: python python-3.x tkinter

所以这是我的完整代码。我想要的只是通过特定文件夹中的工作表将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()

1 个答案:

答案 0 :(得分:1)

您所询问的内容并不完全清楚,那么您可以将问题编辑为更具体吗?

我认为你试图让局部变量longest(来自函数20)能够作为全局变量在函数外部访问。使用filenameThis tutorial很好地解释了。

browsefunc结尾处添加

return

当你致电browsefunc时,你就跑了

return filename

将变量fdback分配给您从browsefunc返回的任何内容。它可以是整数,浮点数,字符串或列表等。

所以,最终的代码是:

browsefunc

我建议使用更明确的变量和函数名称。