解析askopenfilenames()的结果?

Pau*_*aul 10 python windows tkinter python-3.x

我正在尝试从Python 3.2中的tkinter.filedialog.askopenfilenames()获取文件名列表.

    files = askopenfilenames(initialdir="C:\\Users\\BVCAP\\Videos", title="Select files")
    self.num_files.set(len(files))  
Run Code Online (Sandbox Code Playgroud)

我期望输出是一个元组(或可能是一个列表),每个元素都包含一个文件名.据我所知,它返回一个字符串,其中每个元素都包含在花括号{}中,如下所示:

{C:\Users\BVCAP\File1.txt} {C:\Users\BVCAP\File2.txt}

如果我尝试打印(文件),这就是我得到的.看起来它的格式就像某种类型的列表,但它似乎只是一个字符串.我做错了什么,或者这个函数的输出实际上是一个格式化为文件列表的字符串,我需要自己拆分.

eld*_*his 16

这实际上是自2.6版本的Python发布以来一直存在的Windows版本的错误.您可以在他们的跟踪器上找到问题,并且评论中有一个解决方法(我没有亲自尝试过这种解决方法,因为我在Linux上,它会返回一个正确的元组).从那以后我就不知道修复了,问题没有被标记为已关闭/已解决.

注释中建议的解决方法基本上是这样做的:

master = Tk()
files = askopenfilenames(initialdir="C:\\Users\\BVCAP\\Videos", title="Select files")
files = master.tk.splitlist(files) #Possible workaround
self.num_files.set(len(files))
Run Code Online (Sandbox Code Playgroud)