2017-01-12 8 views
-1

これは私のフルコードです。私が望むのは、特定のフォルダからのシートを使って1つのファイルにExcelファイルを追加するだけです。これはGUIで、3つのボタンがブラウズ、追加、終了します。閲覧したフォルダ(ファイル名)からパスの値を取得するにはどうすればよいですか?ありがとうPythonは関数内の可変値を渡します

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

あなたの質問に完全にはっきりしていないので、具体的に質問を編集できますか?

ローカル変数filename(関数内のbrowsefunc)を関数の外部でグローバル変数としてアクセスできるようにしようとしていると思います。 returnを使用してください。 This tutorialはうまく説明します。あなたはbrowsefuncから戻っ何に変数fdbackを割り当て

browsefuncの終わりに、あなたは

return filename 

を追加し、browsefunc呼び出すときに

path = browsefunc() 

を実行します。

def browsefunc(): 
    filename = askdirectory() 
    pathlabel.config(text=filename) 
    return filename 
def new_window(): 
path = browsefunc() 

は、私はより明確な変数名や関数名を使用することをお勧めします:それは、整数、浮動小数点、文字列、またはリストなど

だから、最終的なコードがあることができます。

+0

私を助けてくれてありがとう – Lkhagva

+0

問題ありません!問題が解決した場合は、upv​​ote/downvoteボタンの下にあるチェックボックスをクリックして質問に回答してください。また、今後の質問を投稿する前に、この[MSVEの作成に関するチュートリアル](http://stackoverflow.com/help/mcve)をお読みください。 – tburrows13

関連する問題