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

use*_*084 9 python loops for-loop

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

from datetime import date
dt = str("RT" + date.today().strftime('%d%m'))
print dt # RT0701
Run Code Online (Sandbox Code Playgroud)

基本上我需要找到这种模式dt + "*.txt":

RT0701*.txt
Run Code Online (Sandbox Code Playgroud)

在此列表中:

l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt']
Run Code Online (Sandbox Code Playgroud)

我怎么能用for循环呢?

And*_*ndy 13

你可以使用fnmatch.filter()这个:

import fnmatch
l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt']
pattern = 'RT0701*.txt'
matching = fnmatch.filter(l, pattern)
print(matching)
Run Code Online (Sandbox Code Playgroud)

输出:

['RT07010534.txt', 'RT07010533.txt']
Run Code Online (Sandbox Code Playgroud)