2017-01-19 1 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 오류 메시지 (Traceback)를 넣습니다. 다른 유용한 정보가 있습니다. 즉. 어느 선이 문제가되는지를 보여줍니다. – 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() 

당신이 방법 이외의 열려있는 파일에 액세스하려면, 당신이 그것을 전역 또는 사용 클래스 구조해야한다, 주.

관련 문제