Python 使用通配符查找列表中的字符串

Python 使用通配符查找列表中的字符串,python,loops,for-loop,Python,Loops,For Loop,我正在使用通配符在列表中查找一些文件名 from datetime import date dt = str("RT" + date.today().strftime('%d%m')) print dt # RT0701 基本上我需要找到这个模式dt+“*.txt”: 在此列表中: l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt'] 我怎样才能用for循环做到这一点呢?类似的东西(不使用regex,这是另一个选项) 您可以为此

我正在使用通配符在列表中查找一些文件名

from datetime import date
dt = str("RT" + date.today().strftime('%d%m'))
print dt # RT0701
基本上我需要找到这个模式
dt+“*.txt”

在此列表中:

l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt']
我怎样才能用for循环做到这一点呢?

类似的东西(不使用regex,这是另一个选项)

您可以为此使用:

import fnmatch
l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt']
pattern = 'RT0701*.txt'
matching = fnmatch.filter(l, pattern)
print(matching)
产出:

['RT07010534.txt', 'RT07010533.txt']

您可以使用这样的正则表达式:

import re
pat = re.compile('%s.*\.txt' % dt)
for can in l:
    if(pat.search(can)):
        print can

它们最初是否在一个目录中?如果是这样,请使用
glob.glob(“path/to/{}*.txt”.format(l,dt)
@PadraicCunningham我只需要处理字符串,而不是文件。谢谢
['RT07010534.txt', 'RT07010533.txt']
import re
pat = re.compile('%s.*\.txt' % dt)
for can in l:
    if(pat.search(can)):
        print can