2014-10-07 2 views
-1

Хорошо, поэтому я пытаюсь развернуть приглашение Tkinter в свой скрипт, чтобы просто прочитать запись пользователя в переменной ROOTDIR.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

Вы говорите, что у вас возникли проблемы. Какая у вас проблема? Кроме того, отступы вашего кода перепутаны. –

+0

@BryanOakley У меня возникли проблемы с пониманием того, как использовать Tkinter с моим скриптом –

+0

Почему вы не можете скопировать/вставить код верхнего кода в ваш базовый код? если вам нужен пользовательский ввод, где это необходимо? – W1ll1amvl

ответ

0

вот почти прямая копия, она должна работать? только изменение заключалось в том, чтобы установить ROOTDIR в качестве записи из окна tk и записать остальную часть в функцию, чтобы вы могли ее вызвать один раз ROOTDIR.

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

Спасибо за ваше время! Это сработало. Я ценю это. –

Смежные вопросы