【问题标题】:tkinter askdirectory syntaxtkinter 询问目录语法
【发布时间】:2022-03-17 16:44:29
【问题描述】:

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

因为现在当我使用该功能时,我可以打开资源管理器并获取我需要的文件夹的目录路径,但我无法确定文件夹包含的内容(我现在只是现在手头现在)...... 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 的新窗口到“选择文件夹”,其中包含我选择的内容/文件在窗前。一定会有更好的办法?我一直在阅读文档,但找不到任何有用的东西。帮助将不胜感激!谢谢

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    如果您认为让用户在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()
    

    【讨论】:

    • 因为我只需要文件路径“C:/Users//Desktop/logfiles/*.log”而不是文件路径+文件“C:/Users/Desktop/logfiles/file_test.log”所以然后我将不得不削减最后一部分,这可能是一个solotion。 @ReidBallard
    • 正确,这就是我使用 Path.parent 获取目录的原因。
    猜你喜欢
    • 1970-01-01
    • 2015-04-09
    • 2017-06-09
    • 2012-12-05
    • 1970-01-01
    • 1970-01-01
    • 2011-10-31
    • 2016-01-24
    • 1970-01-01
    相关资源
    最近更新 更多