目前,我正在编写一个 GUI,它应该允许用户保存文件并选择文件类型(比方说:jpg、bmp)。我在 Python 3.4 中使用 tkinter。
不幸的是,我无法弄清楚用户选择了哪种文件类型:我正在使用 asksaveasfilename-dialog,我只能得到路径:
from tkinter import filedialog
path = filedialog.asksaveasfilename(filetypes = [('Bitmap', '.bmp'),('jpg', '.jpg')])
我可以尝试从路径中提取扩展名,但这可能会导致意外行为:
- 如果用户没有在文件名中提供扩展名但选择了文件类型,则“路径”不包含任何扩展名
- 如果用户首先决定使用文件名“example.bmp”,但后来选择 jpg 作为文件类型,则扩展名不是更新的(通常在窗口中)。所以“路径”仍然是:C:\...\example.bmp
有没有办法获取用户选择的文件类型? 还有其他办法吗?
最佳答案
当我遇到自动更新扩展的相同问题时,我偶然发现了你的问题。显然你可以试试 addins :
pythonaddins.SaveDialog = saveFileDialog
这个几乎与 OpenDialog 相同,只是我们可以自动将特定扩展名附加到用户的输入,而不是过滤文件。也可以传入文件类型描述和扩展名的元组列表,然后填充“另存为文件类型”下拉列表,但唯一要做的就是过滤显示的文件。它实际上是将扩展名附加到返回值的 FileExtension 参数。
关于python - tkinter:如何让用户在 asksaveasfilename 对话框中选择文件类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31228956/