import glob list = glob.glob(r'*abc*.txt') + glob.glob(r'*123*.txt') + glob.glob(r'*a1b*.txt') for i in list: print i
此代码用于列出当前文件夹中名称为“ abc”,“ 123”或“ a1b”的文件。
我将如何使用一个glob来执行此功能?谢谢!
最简单的方法是自己过滤全局结果。这是使用简单循环理解的方法:
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
您也可以使用regexp而不使用glob:
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
(顺便说一句,命名变量list是一个坏主意,因为list它是Python类型…)
list