我们正在尝试使用Tkinter的tkFileDialog将目录路径存储在变量中,但它不起作用(稍后详述)。
from Tkinter import *
import os
from tkFileDialog import askopenfilename, askdirectory
# Create the window
root = Tk()
# Application title & size
root.title("Title")
root.geometry("1000x600")
# Creating frame to add things to
app = Frame(root)
app.grid() # Adding app frame to grid
# Method that opens file chooser
# Gets used when button is clicked (command)
def openFileBox():
directoryPicked = tkFileDialog.askdirectory()
#easygui.fileopenbox()
for filePicked in os.listdir(directoryPicked):
if filePicked.lower().endswith(".jpg") or filePicked.lower().endswith(".gif") or filePicked.lower().endswith(".png"):
print filePicked
#TODO: add button 'Select Folder'
loaderButton = Button(app)
loaderButton["text"] = "Select Folder"
loaderButton["command"] = openFileBox
loaderButton.grid()
# Tells the program to run everything above
root.mainloop()
那么需要发生什么?我们看到它的方式(我们是初学者在这里寻找反馈),它应该在按下按钮时运行openFileBox方法。当方法运行时,它应该将选定的目录存储到directoryPicked并将其打印到控制台以确保它正常工作,但是当我们按下按钮时它只是说'tkFileDialog'没有定义。
有什么想法吗?
答案 0 :(得分:0)
这是因为您只是从askopenfilename, askdirectory
导入tkFileDialog
,而您实际上并未导入tkFileDialog
因此您需要将directoryPicked = tkFileDialog.askdirectory()
更改为directoryPicked = askdirectory()