0

现在我正在使用 Tkinter 提示用户输入文件。

Tk().withdraw() # keep the root window from appearing
file_path = askopenfilename() # show dialog box and return file path

# check if extension is valid

如果用户选择了错误的文件类型,我会用一个新窗口重新提示他们。

除非所选文件有效,否则有没有办法保持相同的 tkinter 窗口打开?

所以而不是这个:

# 1) prompt user to open file
# 2) close file browser window
# 3) check if extension is valid
# 4) if not, print error and re-prompt user with new browser window

我想做这个:

# 1) prompt user to open file
# 2) check if extension is valid while keeping window open
# 3) if not, print error, re-prompting with same window

任何帮助表示赞赏。

4

2 回答 2

1

如果您希望用户打开特定的文件类型,请使用filetypes参数。它需要一个文件类型定义列表,您将其指定为描述和扩展名:

filepath = askopenfilename(filetypes = [
    ('Text Files', '.txt'),
    ('Python Scripts', '.py'),
    ('INI Files', '.ini')
])
于 2012-11-23T05:18:38.830 回答
0

您可以将文件浏览器窗口设置为仅显示您希望用户选择的文件类型,但他们可以通过选择类型下拉框来轻松解决这个问题。但是,您可以在文件选择时(用户单击确定以选择文件并关闭文件浏览器窗口)检查文件扩展名是否是您想要的类型之一,如果不是简单的清除文件路径变量并调用文件再次浏览器打开功能。这样,他们就会被困在选择文件中,直到他们选择了正确的文件类型。然而,这确实提出了他们可能不知道他们为什么回到他们开始的地方的问题,因此您可能希望在重新打开文件浏览器窗口之前添加一个弹出窗口或其他内容,以使其更加用户友好。

于 2012-11-23T04:55:17.930 回答