2017-05-12 3 views
0

여러 명령 줄 인수를 전달하여 읽을 하위 디렉토리 목록을 만들고 싶습니다.명령 줄 인수에서 하위 디렉토리 목록 읽기

python foo.py -s 'P1,P2' -c 'X,Y'

나는 단지 하위 디렉토리 읽는이를 좋아하는 것 : 현재 내가 같은 명령 줄에서의 통과 나는 다음 시도했다

P1/X/ 
P1/Y/ 
P2/X/ 
P2/Y/ 

을하지만, 모든 읽기 끝 하위 디렉토리 :

path = os.path.join('*['+s+']', '*['+c+']', '*.txt') 
    files = glob.glob(path) 

가 어떻게 목록의 조합에서 만 하위 디렉토리에이를 제한 할 수 있습니다 ?

+0

나에게 효과가있는 것처럼 보입니다. – janos

답변

1

다음은 당신이 product 기능에 공급하는 두 개의 목록으로 두 개의 인수를 설정해야합니다,

>>> import os 
>>> from itertools import product 
>>> [os.path.join(s, c, '*.txt') for s, c in product(['P1', 'P2'], ['X', 'Y'])] 
['P1/X/*.txt', 'P1/Y/*.txt', 'P2/X/*.txt', 'P2/Y/*.txt'] 

분명히 목록을 생성의 측면에서, 당신이 원하는 것을 할 것입니다.