输入文件夹路径并返回Tkinter上的文件列表



下面的代码我用的是Tkinter

使用filedialog输入文件夹路径搜索并返回"mp3"列表文件从文件夹中取出并放上所有的mp3">

from tkinter import StringVar, filedialog
import os 
import tkinter

root = tkinter.Tk()
path = filedialog.askdirectory()
try:
if not path:
print('Canceled')
else:    
mp3 = [fn for fn in os.listdir(path) if fn.lower().endswith('.mp3') and os.path.isfile(os.path.join(path, fn))]
for filename in mp3:    
clicked = StringVar()
tkinter.OptionMenu(root, clicked, filename).pack()
except:
pass
root.mainloop()

代码运行正常

但是它给了我不止一个选项菜单

OptionMenu的第一个参数是要放置自己的小部件,第二个是要放置当前选定值的StringVar,第三个是OptionMenu的默认值,其他任何位置参数将显示为选项。

因此,您只需要一个OptionMenu实例,您将mp3作为参数传递给它,您可以通过使用mp3作为参数进行参数扩展,但使用星号(*)作为前缀。

另外要提到的是,您通常不应该默默地忽略任何错误-这就是为什么我删除了try/except。这是正确的代码:

from tkinter import StringVar, filedialog
import os 
import tkinter

root = tkinter.Tk()
path = filedialog.askdirectory()
if not path:
print('Canceled')
else:    
mp3 = [fn for fn in os.listdir(path) if fn.lower().endswith('.mp3') and os.path.isfile(os.path.join(path, fn))]
clicked = StringVar()
tkinter.OptionMenu(root, clicked, mp3[0], *mp3).pack()
root.mainloop()

相关内容

  • 没有找到相关文章

最新更新