如何通过排除字符串来获取所有文件的列表?

时间:2017-11-07 03:57:13

标签: python operating-system glob

我有一个文件夹:

aaa.sh
bbb.sh
ccc.sh
aaadomain.sh
hhhdomain.sh
yyyydomain.sh
aaadomainasssa.sh

当我这样做时,我会得到所有文件的列表

import glob,os
filelist = glob.glob('*.sh')

但是,如何在文件名中排除所有domain作为字符串的文件?

2 个答案:

答案 0 :(得分:2)

如果您计划迭代filter,请使用filelist

for f in filter(lambda x: 'domain' not in x, glob.glob('*.sh')):
    ... # do something with f

或者,使用列表理解

filelist = [x for x in glob.glob('*.sh') if 'domain' not in x]

答案 1 :(得分:0)

我建议列表理解。

>>> [i for i in glob.glob('*.sh') if 'domain' not in i]
['aaa.sh', 'ccc.sh', 'bbb.sh']