2017-03-24 4 views
1

옵션 메뉴에 여러 개의 폴더 이름을 추가하려고합니다. 아래 코드는 하나의 폴더 이름 만 목록에 추가하지만 디렉토리에 모든 폴더 이름을 추가하려고합니다.디렉토리에서 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

Im이 줄에 sythax 오류가 발생했습니다. "opt1 = OptionMenu (app, var, * options)" –

+1

@ 페터 우드, 괄호를 계산하면 놓쳤습니다. 그리고'options'리스트는'all_subdirs'와 동일합니다. 그래서 OP는 반복없이 그것을 풀 수도 있습니다. – CommonSense

+0

@Peter Wood, 예, 문제 없습니다. 그러나 다시 말하지만,'all_subdirs'는 이미 dir-names가있는 목록이므로 다른 목록에는 전혀 필요가 없다는 대답을 언급하는 것이 중요하다고 생각합니다. 'opt1 = OptionMenu (app, var, * all_subdirs)' – CommonSense

관련 문제