想要丢弃具有特定文件格式的一组文件。例如,模式列表中列出的那些。
patterns =[r'\.pdf$',r'\.mpeg$']
NOT_FILE = [ re.compile(p) for p in patterns]
grep_not_match = (lambda l, regex: [each for each in l if (regex.search(e)))])
for rt,dr,files in os.walk(rootdirectory):
files = grep_not_match(files,NOT_FILE)
我知道,我在这里犯了一个超级愚蠢的错误,任何人都可以搞清楚吗?
答案 0 :(得分:3)
对于像这样的简单任务,您不需要正则表达式。你可以使用endswith:
files = [f for f in files if not f.endswith(('.pdf', '.mpeg'))]
答案 1 :(得分:1)
列表理解看起来应该是这样的:[每个用于l if(regex.search(each)))])
似乎这至少是问题的一部分
答案 2 :(得分:1)