gpt4 book ai didi

python - tkFileDialog 不将结果转换为 Windows 上的 Python 列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:24:36 24 4
gpt4 key购买 nike

我使用下面的代码(Python 2.7 和 Python 3.2)来显示一个支持多选的“打开文件”对话框。在 Linux 上文件名是一个 python 列表,但在 Windows 上文件名返回为 {C:/Documents and Settings/IE User/My Documents/VPC_EULA.txt} {C:/Documents and Settings/IE User/My Documents/VPC_ReadMe.txt} ,即原始 TCL 列表。

这是一个 python 错误吗,这里有人知道将原始 TCL 列表转换为 python 列表的好方法吗?

if sys.hexversion >= 0x030000F0:
import tkinter.filedialog as filedialog
else:
import tkFileDialog as filedialog

options = {}
options['filetypes'] = [('vnote files', '.vnt') ,('all files', '.*')]
options['multiple'] = 1
filenames = filedialog.askopenfilename(**options)

最佳答案

问题是 Tcl、Tk 和 Python 之间的“有趣”交互,它们中的每一个都在做一些自己明智的事情,但组合行为不正确。深层问题是 Tcl 和 Python 对于类型的含义有非常不同的想法,这表现为 Tcl 将其视为列表但 Python 将其视为字符串的值(Tk 中的代码假设不需要小心清洁 Python)。可以说 Python 接口(interface)应该使用这样一个事实,即它可以知道 Tcl 列表将从多项选择中返回并隐藏它,但它不会让你陷入困境。

我可以(而且应该!)在 Tk 中修复此问题,但我不知道修复需要多长时间才能以这种方式返回给您。


[编辑]:现在已在 Tk 8.5 维护分支和主要开发分支中修复(使用 this 补丁)。我无法预测您何时能够获得固定版本,除非您从我们的化石存储库中获取源代码并自行构建。

关于python - tkFileDialog 不将结果转换为 Windows 上的 Python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com