Regular expression usage in glob.glob?

glob, python

Solution

The easiest way would be to filter the glob results yourself. Here is how to do it using a simple loop comprehension:

import glob
res = [f for f in glob.glob("*.txt") if "abc" in f or "123" in f or "a1b" in f]
for f in res:
    print f

You could also use a regexp and no `glob`:

import os
import re
res = [f for f in os.listdir(path) if re.search(r'(abc|123|a1b).*\.txt$', f)]
for f in res:
    print f

(By the way, naming a variable `list` is a bad idea since `list` is a Python type...)

Problem

``` import glob list = glob.glob(r'*abc*.txt') + glob.glob(r'*123*.txt') + glob.glob(r'*a1b*.txt') for i in list: print i ``` This code works to list files in the current folder which have `'abc'`, `'123'` or `'a1b'` in their names. How would I use one `glob` to perform this function?

Original source