Python 在tkinter中打开多个文件名,并将文件名添加到列表中

Python 在tkinter中打开多个文件名,并将文件名添加到列表中,python,file,tkinter,Python,File,Tkinter,我要做的是选择多个文件 使用tkinter文件对话框 然后将这些项目添加到列表中。 之后,我想使用列表进行处理 每个文件一个接一个 #replace.py import string def main(): #import tkFileDialog #import re #ff = tkFileDialog.askopenfilenames() #filez = re.findall('{(.*?)}', ff) i

我要做的是选择多个文件 使用tkinter文件对话框 然后将这些项目添加到列表中。 之后,我想使用列表进行处理 每个文件一个接一个

#replace.py
import string
def main():
        #import tkFileDialog
        #import re
        #ff = tkFileDialog.askopenfilenames()
        #filez = re.findall('{(.*?)}', ff)
        import Tkinter,tkFileDialog
        root = Tkinter.Tk()
        filez = tkFileDialog.askopenfilenames(parent=root,title='Choose a file')
现在,我可以选择多个文件, 但我不知道如何将这些文件名添加到列表中。
有什么想法吗?

askopenfilenames
返回一个字符串而不是列表,该问题在中仍然存在,到目前为止,最好的解决方案是使用
拆分列表

import Tkinter,tkFileDialog

root = Tkinter.Tk()
filez = tkFileDialog.askopenfilenames(parent=root, title='Choose a file')
print root.tk.splitlist(filez)
Python 3更新:

tkFileDialog
已重命名,现在
askopenfilenames
直接返回元组:

import tkinter as tk
import tkinter.filedialog as fd

root = tk.Tk()
filez = fd.askopenfilenames(parent=root, title='Choose a file')

askopenfilenames
返回一个字符串而不是列表,该问题在中仍然存在,到目前为止,最好的解决方案是使用
splitlist

import Tkinter,tkFileDialog

root = Tkinter.Tk()
filez = tkFileDialog.askopenfilenames(parent=root, title='Choose a file')
print root.tk.splitlist(filez)
Python 3更新:

tkFileDialog
已重命名,现在
askopenfilenames
直接返回元组:

import tkinter as tk
import tkinter.filedialog as fd

root = tk.Tk()
filez = fd.askopenfilenames(parent=root, title='Choose a file')
返回字符串的元组,而不是字符串。 只需将askopenfilenames的输出存储到filez中(正如您所做的那样),并将其传递给python的list方法以获得列表

filez = tkFileDialog.askopenfilenames(parent=root,title='Choose a file')
lst = list(filez)

>>> type(lst)
<type 'list'>
filez=tkFileDialog.askopenfilenames(parent=root,title='Choose a file')
lst=列表(filez)
>>>类型(lst)
返回字符串的元组,而不是字符串。 只需将askopenfilenames的输出存储到filez中(正如您所做的那样),并将其传递给python的list方法以获得列表

filez = tkFileDialog.askopenfilenames(parent=root,title='Choose a file')
lst = list(filez)

>>> type(lst)
<type 'list'>
filez=tkFileDialog.askopenfilenames(parent=root,title='Choose a file')
lst=列表(filez)
>>>类型(lst)

将上述解决方案中的部分与几行放在一起,以防tkinter文件选择对话框的代码出错(如我所述)

返回文件路径的列表。可以通过使用以下代码
剥离
,仅显示实际文件名以供进一步使用:

fileNames = []
for path in filePaths:
    name = path[46:].strip() 
    name2 = name[:-5].strip() 
    fileNames.append(name2)
fileNames

其中,整数(46)和(-5)可以根据文件路径进行更改。

将上述解决方案中的部分与几行放在一起,以防tkinter文件选择对话框的代码出错(如我所述)

返回文件路径的列表。可以通过使用以下代码
剥离
,仅显示实际文件名以供进一步使用:

fileNames = []
for path in filePaths:
    name = path[46:].strip() 
    name2 = name[:-5].strip() 
    fileNames.append(name2)
fileNames

整数(46)和(-5)可以根据文件路径进行更改。

在Python 3中,它对我的工作方式是这样的(考虑小写):

我希望你觉得它有用!
问候

在Python 3中,它对我的工作方式是这样的(尊重小写):

我希望你觉得它有用!
问候

谢谢,这帮了大忙。在代码的第4行中,“root”是什么意思?这是用户启动脚本的控制台窗口吗?@danielcg否,它是Tkinter应用程序的顶级(根)窗口的名称。它是在执行Python程序的控制台旁边打开的。很抱歉这个愚蠢的问题,哈哈,但是我该如何使控制台窗口成为askopenfilenames对话框的父窗口?我相信这已经过时了?谢谢,这帮了大忙。在这里的代码第4行中,“root”是什么意思?这是用户启动脚本的控制台窗口吗?@danielcg否,它是Tkinter应用程序的顶级(根)窗口的名称。它是在执行Python程序的控制台旁边打开的。很抱歉这个愚蠢的问题,哈哈,但是我该如何使控制台窗口成为askopenfilenames对话框的父窗口?我相信这已经过时了?