首页 > 解决方案 > Python - tkinter askdirectory 语法

问题描述

我有一个关于askdirectory()in tkinter 的问题。是否可以使用该功能并查看我要从中选择目录的文件夹中的内容?

因为现在当我使用该功能时,我可以打开资源管理器并获取我需要的文件夹的目录路径,但我无法确定该文件夹包含的内容(我现在只是现在手头)......使用该askdirectory功能文件夹显示“没有项目符合您的搜索。”。所以我想出了这个:

 filepath_ask = filedialog.askdirectory(
                initialdir=os.path.dirname(filedialog.askopenfilename(title ="Pick a folder in directory with .log files")),
                title = "Press 'Select Folder'")

但它并不是那么“用户友好”。首先它打开一个窗口,askopenfilename以便我可以看到文件夹中的内容,然后当我选择一个文件并打开一个新窗口,其中askdirectory包含我之前在窗口中选择的内容/文件的“选择文件夹”。一定会有更好的办法?我一直在阅读文档,但找不到任何有用的东西。帮助将不胜感激!谢谢

标签: pythontkinter

解决方案


如果您认为让用户在对话框中选择一个文件并不那么麻烦askopenfilename,那么为什么不直接运行(并askdirectory完全跳过):

import tkinter as tk
from tkinter import filedialog
import pathlib

root = tk.Tk()
ask = filedialog.askopenfilename(title="Select a directory", filetypes = [("log",".log"),("All Files",".*")])
print(f"User selected Directory: {pathlib.Path(ask).resolve().parent}")
root.destroy()

推荐阅读