簡體   English   中英

TkInter在文件名模式匹配中插入虛假通配符

[英]TkInter inserts spurious wildcard in filename pattern matching

我試圖向用戶顯示適合特定模式的文件的文件打開對話框。 它們的格式為前綴_ *。后綴 ,其中星號表示通配符。

以下是我認為應該使用TkInter完成此操作的最小示例:

from tkinter.filedialog import askopenfilename

my_dir = 'C:\\path\\to\\some\\directory'
pattern = (('File type', 'prefix_*.suffix'),)
title = 'Title'
my_file = askopenfilename(initialdir=my_dir, filetypes=pattern, title=title)

但是,生成的對話框會在我的模式前面添加一個虛假的通配符,因此它現在看起來像* prefix _ *。后綴 這不是我的預期。

TkInter AskOpenFileDialog Bug?

難道我做錯了什么? 關於TkInter中的這個接口應該如何工作,我找不到任何體面的文檔,所以它可能比我預期的更有限。 如果是這樣,是否有一個內置的Python庫可以支持這個特定的用例?

如果它與問題相關,我在Windows 10上安裝了32位Python。

filetypes中的值被解釋為文件擴展名 ,而不是文件模式

官方的tcl / tk文檔 (tkinter是一個圍繞tcl / tk的薄包裝):

-filetypes選項給出的filePatternList值是文件模式列表。 每個文件模式都是一個表單typeName {extension ?extension ...?} ?{macType ?macType ...?}? typeName是此文件模式描述的文件類型的名稱,是文件類型列表框中顯示的文本字符串。 extension是此文件模式的文件擴展名

它接着說:

由於各種平台上的模式匹配規則不同,為了確保可移植性,擴展中不允許使用通配符,除非在特殊擴展名“*”中。 允許使用沒有句號(例如“〜”)的擴展名,但可能無法在所有平台上運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM