Python 在tkinter中打开多个文件名,并将文件名添加到列表中
我要做的是选择多个文件 使用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
#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对话框的父窗口?我相信这已经过时了?