当前位置: 代码迷 >> python >> Python Tkinter-无法选择目录(找不到tkFileDialog)
  详细解决方案

Python Tkinter-无法选择目录(找不到tkFileDialog)

热度:71   发布时间:2023-06-13 20:19:42.0

我们正在尝试使用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”。
有什么想法吗?

这是因为您只从tkFileDialog导入askopenfilename, askdirectory ,实际上tkFileDialog没有导入tkFileDialog本身。

因此,您需要将directoryPicked = tkFileDialog.askdirectory()更改为directoryPicked = askdirectory()