2017-01-19 6 views
-1

tkinterエントリを使用して、ファイル名を入力できるようにしたいと考えています。そのファイルは変数に格納されており、私が作業している検証プログラムを実行するために使用されます。私が今使っているコードでは、単に無効なファイルエラーが発生し、コードは実行されません。ここでTkinterを使用して変数にファイル名を割り当てる

TypeError: invalid file: <function input_text at 0x035DBD68> 

私が使用していたコードです:

def input_text(): 
    mtext = stuff.get 
    label2 = Label(root,text=mtext).pack() 
    return 

root = Tk() 
stuff = StringVar() 

root.title("Project") 
root.geometry('300x100') 

label = Label(root,text="My Project").pack() 
button1 = Button(root,text="OK",command=input_text).pack() 
entry1 = Entry(root,textvariable=stuff).pack() 

with open(input_text, 'r') as f: 
    reader = csv.reader(f) 

アイデアがinput_textとが割り当てられるまでの文と下のコードが実行されませんが、私は実行する方法を見つけることができないということですこの。

+0

BTW:常に最後の部分だけでなく、問題のFULLエラーメッセージ(トレースバック)を常に入れます。その他の有用な情報があります。すなわち、どの行が問題になっているかを示します。 – furas

答えて

1

ボタンをクリックした後にコードを実行する場合は、メソッド内にコードを挿入します。

また、input_textはファンクションとして定義され、openはエラー状態としてファイルを想定しています。 mtextまたはStringVarのコンテンツを直接ファイル名として使用することができます。

def input_text(): 
    mtext = stuff.get() #notice the parentheses. You need to call the get method 
    label2 = Label(root,text=mtext).pack() 
    with open(mtext, 'r') as f: 
     reader = csv.reader(f) 


root = Tk() 
stuff = StringVar() 

root.title("Project") 
root.geometry('300x100') 

label = Label(root,text="My Project").pack() 
button1 = Button(root,text="OK",command=input_text).pack() 
entry1 = Entry(root,textvariable=stuff).pack() 

このメソッドの外で開いたファイルにアクセスする場合は、そのメソッドをグローバルにするか、クラス構造を使用する必要があります。

関連する問題