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

参考方案

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

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是Python类型,所以给变量list命名是个坏主意。)

在项目列表上调用一个函数的最简洁方法 - python

在python 2中,我使用map将函数应用于多个项目,例如,删除所有与模式匹配的项目:map(os.remove,glob.glob("*.pyc")) 当然我忽略了os.remove的返回码,我只想删除所有文件。它创建了一个列表的临时实例,但没有成功。使用Python 3时,由于map返回一个迭代器而不是一个列表,因此上面的代码不执行…

从多个Excel模板文件创建熊猫数据库-Python 3 - python

我下面的代码可以工作,但是我是python的新手,感觉应该有更好的方法...公司在Excel模板中填写了有关其劳动力的一些统计信息,因此每次文件的格式都完全相同。大约有150个单独的文件,它们都是Excel(.xls格式,我不确定为什么,但是我没有参与发送这些文件!)。所需的数据存储在单个单元格中:单元格C6 =公司名称,单元格C13 =职位数量等我要为每个…

生成器表达式组合线理解执行步骤 - python

                                                                                                                    [print(x) for x in ((x ** 2) for x in range(5))] 输出0 1 4 9 16 [N…

将元组的整数转换为元组的字符串 - python

我想将元组的整数转换为元组的字符串。例如:data = [(2,3,4,...),(23,42,54,...),......] 会导致:d = [('2','3','4',...),('23','42','54',....)......] …

如何更改for循环的索引? - python

假设我有一个for循环:for i in range(1,10): if i is 5: i = 7 如果要满足特定条件,我想更改i。我试过了,但是没用。我该怎么办? 参考方案 对于您的特定示例,这将起作用:for i in range(1, 10): if i in (5, 6): continue 但是,最好使用while循环:i = 1 while i…