小编典典

glob.glob for python中的正则表达式用法

python

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来执行此功能?谢谢!


阅读 241

收藏
2020-12-20

共1个答案

小编典典

最简单的方法是自己过滤全局结果。这是使用简单循环理解的方法:

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

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类型…)

2020-12-20