问题描述
我们正在尝试使用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”。
有什么想法吗?
1楼
这是因为您只从tkFileDialog
导入askopenfilename, askdirectory
,实际上tkFileDialog
没有导入tkFileDialog
本身。
因此,您需要将directoryPicked = tkFileDialog.askdirectory()
更改为directoryPicked = askdirectory()