2017-03-24 18 views
1

オプションメニューに複数のフォルダ名を追加しようとしています。以下のコードは、フォルダ名を1つだけリストに追加しますが、ディレクトリにすべてのフォルダ名を追加したいとします。複数のフォルダ名をDirectoryからOptionMenu Pythonに追加する

options = [] 
for dirs in all_subdirs: 
    ... # same 
    options.append(str(current).split("\\")[3]) 

optionsの開梱:

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") 

答えて

3

あなたはメニューオプションのリストを作成し、その後、あなたは、現時点ではnewを渡している、それを解凍する必要が

opt1 = OptionMenu(app, var, *options) 

注:optionsall_subdirsと同じになりますので、あなたの処理は何も達成されないようです。代わりにall_subdirsを使用してください。

+0

この行にsythaxエラーが表示される "opt1 = OptionMenu(app、var、* options)" –

+1

@Peter Wood、あなたのカッコを数えれば、あなたは1つ見逃しています。そして 'options'リストは' all_subdirs'と同じですので、OPは反復せずにアンパックすることもできますか? – CommonSense

+0

@Peter Wood、ええ、問題ありません。しかし、もう一度、あなたの答えで言えば、 'all_subdirs'はすでにdir-namesのリストであると言えるので、別のリストには全く必要はありません。 'opt1 = OptionMenu(app、var、* all_subdirs)' – CommonSense

関連する問題