Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将多个文件夹名称从目录添加到OptionMenu Python_Python_Tkinter_Path_Directory_Optionmenu - Fatal编程技术网

将多个文件夹名称从目录添加到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=选项菜单(应用程序、变量、*所有子菜单)