我想用tkinter创建一个浏览按钮来浏览包含某些文件的目录。我正在制作一个程序,它应该复制文件并在某些目录中对这些文件运行一些控件,但目录可能会不时变化。浏览按钮将位于开始页面上,您应该能够选择一个目录,然后单击另一个按钮来运行程序中的一个控件,并且在控件期间将使用该目录的文件。我还添加了一个条目,它应该说明选择了哪个目录。有谁知道如何浏览目录并存储它的路径供以后使用?以及如何将条目和通过浏览选择的目录联系在一起?
我的tkinter脚本看起来像这样(正在进行中):
from tkinter import *
import os
LARGE_FONT = ("Verdana", 12)
current_dir = os.getcwd()
class Gui(Tk):
def __init__(self, *args, **kwargs):
Tk.__init__(self, *args, **kwargs)
Tk.wm_title(self, "My controls")
container = Frame(self)
container.pack(side="top", fill="both", expand=True)
container.grid_rowconfigure(0, weight=1)
container.grid_columnconfigure(0, weight=1)
self.geometry("350x500")
self.frames = {}
frame = StartPage(container, self)
self.frames[StartPage] = frame
frame.grid(row=0, column=0, sticky="nsew")
self.show_frame(StartPage)
def show_frame(self, cont):
frame = self.frames[cont]
frame.tkraise()
class StartPage(Frame):
def __init__(self, parent, controller):
Frame.__init__(self, parent)
label = Label(self, text="My controls", font=LARGE_FONT)
label.pack(pady=10, padx=10)
self.buttons()
self.program = ""
*#Defining the browsebutton, any suggestions on what I should do next?**
def browsedir(self):
from tkinter.filedialog import askdirectory
Tk().withdraw()
self.filename = askdirectory()
*#Defining the copying of the files and filepath. How to make the filepath variable?*
def runanalyze1(filepath):
for txt in os.listdir(filepath):
if txt.endswith('.txt'):
copyfiles(from_path=filepath+"\\"+txt, to_path=r"C:\catalog"+"\\"+txt)
def buttons(self):
self.pack(fill=BOTH, expand=1)
analyze1button = Button(self, text="Copyfiles", command=self.runanalyze1)
analyze1button.place(x=50, y=150)
quitbutton = Button(self, text="Quit", command=self.quit)
quitbutton.place(x=150, y=250)
*#Creating the browse button*
browsebutton = Button(self, text="Browse", command=self.browsedir)
browsebutton.pack(side=BOTTOM)
*#Creating an entry, not sure how to tie this to the browse button either.*
e1 = Entry(self, bd=5)
e1.pack(side=BOTTOM)
e1.insert(0, "{}".format(current_dir))
if __name__ == "__main__":
app = Gui()
app.mainloop()
注意:我有更多代码用于控制的其余部分等。我刚刚添加了与问题相关的内容。使用Python 3.4.1。感谢答案!
答案 0 :(得分:0)
尝试阅读os.path
模块。它在查找路径时有一些有趣的东西,您可以将它们存储为字符串变量,因为它们是绝对路径。另一个有用的东西是os.getcwd()
或os.path.dirname(__file__)
,它们给出了几乎相同的东西,即当前目录的路径。第一个给出文件执行的目录,第二个是文件所在的目录。