Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7-Tkinter用户输入提示_Python_Python 2.7_Tkinter - Fatal编程技术网

Python 2.7-Tkinter用户输入提示

Python 2.7-Tkinter用户输入提示,python,python-2.7,tkinter,Python,Python 2.7,Tkinter,好的,我正试图在脚本中部署一个Tkinter提示符,以便将用户条目读入ROOTDIR变量 下面是一个Tkinter脚本,它似乎非常适合我试图完成的任务,但在将该脚本绑定到我的基本脚本(也可以在下面找到)时遇到困难 import Tkinter as tk class SampleApp(tk.Tk): def __init__(self): tk.Tk.__init__(self) self.entry = tk.Entry(self)

好的,我正试图在脚本中部署一个Tkinter提示符,以便将用户条目读入
ROOTDIR
变量

下面是一个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)
非常感谢您的帮助


谢谢

这是一个几乎直接的复制粘贴,应该可以吗?唯一的改变是将
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()

如果这不起作用,请回复我:)

你说你有麻烦了。你有什么麻烦?此外,您的代码缩进也有问题。@BryanOakley我很难理解如何在脚本中使用Tkinter为什么您不能将最上面的代码复制/粘贴到基本代码中?如果你需要用户输入,那需要在哪里?@W1ll1amvl这就是我被卡住的地方。尝试将顶级代码与基本代码交织在一起,我将发布一个答案,您可以看到它是否有助于感谢您的时间!这起作用了。我很感激。