2014-10-07 3 views
-1

좋아요, 그렇기 때문에 사용자 입력을 ROOTDIR 변수로 간단히 읽으려면 스크립트에 Tkinter 프롬프트를 배포하려고합니다.Python 2.7 - Tkinter 사용자 입력 프롬프트

다음은 내가 수행하려고 시도하는 데 이상적인 것으로 보이는 Tkinter 스크립트이지만 기본 스크립트에 스크립트를 묶는 데는 문제가 있습니다.

import Tkinter as tk 

class SampleApp(tk.Tk): 
    def __init__(self): 
     tk.Tk.__init__(self) 
     self.entry = tk.Entry(self) 
     self.button = tk.Button(self, text="Please enter path", command=self.on_button) 
     self.button.pack() 
     self.entry.pack() 

    def on_button(self): 
     print self.entry.get() 

app = SampleApp() 
app.mainloop() 

다음은 내가 시도하고있는 기본 프로그램입니다. Tkinter 프롬프트가 포함되어 있습니다.

import glob 
import os 
import xlrd 
import csv 

#set data path 
ROOTDIR = r'C:\Users\username\Desktop\Mults' 
wb_pattern = os.path.join(ROOTDIR, '*.xlsx') 

workbooks = glob.glob(wb_pattern) 
start_rownum = 3 # number of row eliminated 
with open('merged excel.csv', 'wb') as outcsv: 
writer = csv.writer(outcsv) 
for wb in workbooks: 
    book_path = os.path.join(ROOTDIR, wb) 
    book = xlrd.open_workbook(book_path) 
    sheet = book.sheet_by_index(0) 
    for row_num in xrange(start_rownum, sheet.nrows): 
     row = sheet.row_values(row_num) 
     writer.writerow(row) 

어떤 도움을 주셔서 감사합니다.

감사합니다.

+0

작동하지 않는 경우

import glob import os import xlrd import csv import Tkinter as tk def maincode(): global ROOTDIR wb_pattern = os.path.join(ROOTDIR, '*.xlsx') workbooks = glob.glob(wb_pattern) start_rownum = 3 # number of row eliminated with open('merged excel.csv', 'wb') as outcsv: writer = csv.writer(outcsv) for wb in workbooks: book_path = os.path.join(ROOTDIR, wb) book = xlrd.open_workbook(book_path) sheet = book.sheet_by_index(0) for row_num in xrange(start_rownum, sheet.nrows): row = sheet.row_values(row_num) writer.writerow(row) class SampleApp(tk.Tk): def __init__(self): tk.Tk.__init__(self) self.entry = tk.Entry(self) self.button = tk.Button(self, text="Please enter path", command=self.on_button) self.button.pack() self.entry.pack() def on_button(self): global ROOTDIR ROOTDIR = self.entry.get() maincode() app = SampleApp() app.mainloop() 

당신은 당신이 문제가 발생 말한다. 어떤 종류의 문제가 있습니까? 또한 코드의 들여 쓰기가 엉망입니다. –

+0

@BryanOakley 내 스크립트에서 Tkinter를 사용하는 방법을 이해하는 데 어려움이 있습니다 –

+0

왜 상위 코드를 기본 코드에 복사/붙여 넣기 할 수 없습니까? 사용자 입력이 필요한 경우 어디에서 필요합니까? – W1ll1amvl

답변

0

여기 거의 똑같은 사본 붙여 넣기가 가능합니까? 변경은 ROOTDIR을 tk 창에서 항목으로 설정하고 나머지는 함수에 씁니다. 따라서 ROOTDIR이 작성되면 호출 할 수 있습니다. 이 나에게 돌아 오기 :

+0

시간 내 주셔서 감사합니다! 이것은 효과가 있었다. 감사합니다. –

관련 문제