我想传递多个命令行参数来创建要读取的子目录列表。目前我从命令行传递它们:
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 :(得分: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
函数。