从命令行参数中读取子目录列表

时间:2017-05-12 23:30:47

标签: python directory

我想传递多个命令行参数来创建要读取的子目录列表。目前我从命令行传递它们:

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)

如何将此限制仅限于列表组合中的子目录?

1 个答案:

答案 0 :(得分:1)

在生成列表

方面,以下内容可以满足您的需求
>>> 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']

显然,您需要将两个参数转换为两个列表以提供给product函数。