2017-05-12 7 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'] 

明らかにリストを生成するという点で、あなたがやりたいだろう。