python - 使用 TKinter 创建浏览按钮

标签 python tkinter

我正在编写一些代码,用户需要能够在其中选择程序将在其上运行的文件。我创建了一个允许用户选择文件的浏览按钮,但是当您点击“确定”时,程序的其余部分并没有意识到已经有输入。选择文件后,文件名也应自动输入到浏览栏中。有什么建议吗?

from Tkinter import *

class Window:       

def __init__(self, master):     

    #Browse Bar
    csvfile=Label(root, text="File").grid(row=1, column=0)
    bar=Entry(master).grid(row=1, column=1) 

    #Buttons  
    y=7
    self.cbutton= Button(root, text="OK", command=master.destroy)       #closes window
    y+=1
    self.cbutton.grid(row=10, column=3, sticky = W + E)
    self.bbutton= Button(root, text="Browse", command=self.browsecsv)
    self.bbutton.grid(row=1, column=3)

#-------------------------------------------------------------------------------------#
def browsecsv(self):
    from tkFileDialog import askopenfilename

    Tk().withdraw() 
    filename = askopenfilename()

#-------------------------------------------------------------------------------------#
import csv

with open('filename', 'rb') as csvfile:
    logreader = csv.reader(csvfile, delimiter=',', quotechar='|')
    rownum=0

    for row in logreader:    
        NumColumns = len(row)        
        rownum += 1

    Matrix = [[0 for x in xrange(NumColumns)] for x in xrange(rownum)] 

csvfile.close()


root = Tk()
window=Window(root)
root.mainloop()  

最佳答案

你也可以使用 tkFileDialog..

import Tkinter,tkFileDialog

root = Tkinter.Tk()
file = tkFileDialog.askopenfile(parent=root,mode='rb',title='Choose a file')
if file:
    data = file.read()
    file.close()
    print "I got %d bytes from this file." % len(data)

关于python - 使用 TKinter 创建浏览按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16798937/

相关文章:

python - pymongo.errors.InvalidOperation : cannot set options after executing query

python - np.float 不匹配 np.float32 和 np.float64

Python Mechanize : encode cause strange character

Python - 如何一键设置多个命令的优先级?

python canvas在循环中创建图像

python - 从 Tkinter 的 Entry 中获取值(value)

python - Tkinter、Canvas 在窗口大小调整时拒绝扩展或收缩

python - itertools.chain.from_iterable 适用于嵌套数字列表,但不适用于字符串列表?

python - 在sklearn中使用One Hot Encoding对32位十六进制数字进行编码

python - "Do not localize"在 Tkinter 文件对话框中选择文件后出现警告