将多个文件夹名称从目录添加到OptionMenu Python
我正在尝试向选项菜单添加多个文件夹名称。下面的代码只将一个文件夹名称添加到列表中,但我想添加目录中的所有文件夹名称将多个文件夹名称从目录添加到OptionMenu Python,python,tkinter,path,directory,optionmenu,Python,Tkinter,Path,Directory,Optionmenu,我正在尝试向选项菜单添加多个文件夹名称。下面的代码只将一个文件夹名称添加到列表中,但我想添加目录中的所有文件夹名称 var = StringVar() os.chdir('C:\\Users\\mhoban') all_subdirs = [d for d in os.listdir('.') if os.path.isdir(d)] for dirs in all_subdirs: dir = os.path.join('C:\\Users\\mhoban', dirs) os
var = StringVar()
os.chdir('C:\\Users\\mhoban')
all_subdirs = [d for d in os.listdir('.') if os.path.isdir(d)]
for dirs in all_subdirs:
dir = os.path.join('C:\\Users\\mhoban', dirs)
os.chdir(dir)
current = os.getcwd()
new = str(current).split("\\")[3]
opt1 = OptionMenu(app, var, new)
opt1.grid(row=0, column=1, padx=10, pady=10)
opt1.configure(width = 40, bg = "White")
您需要建立一个菜单选项列表,然后将其解压缩到当前传递的
new
:
options = []
for dirs in all_subdirs:
... # same
options.append(str(current).split("\\")[3])
解包选项
:
opt1 = OptionMenu(app, var, *options)
注意:
选项
将与所有子目录
相同,因此您的处理似乎没有取得任何效果。只需使用all_subdirs
。我在这行“opt1=OptionMenu(app,var,*options)”上遇到一个sythax错误。@Peter Wood,数一数你的括号,你错过了一个。而且options
列表与all_subdirs
相同,因此OP也可以在不迭代的情况下解压它?@Peter Wood,是的,没问题。但是,我认为在您的回答中值得一提的是,all_subdirs
已经是一个包含目录名的列表,因此根本不需要在另一个列表中<代码>opt1=选项菜单(应用程序、变量、*所有子菜单)