我正在使用通配符在列表中查找一些文件名。
from datetime import date
dt = str("RT" + date.today().strftime('%d%m'))
print dt # RT0701
基本上我需要找到这种模式dt + "*.txt"
:
RT0701*.txt
在此列表中:
l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt']
我怎么能用for循环呢?
答案 0 :(得分:9)
您可以使用fnmatch.filter()
:
import fnmatch
l = ['RT07010534.txt', 'RT07010533.txt', 'RT02010534.txt']
pattern = 'RT0701*.txt'
matching = fnmatch.filter(l, pattern)
print(matching)
输出:
['RT07010534.txt', 'RT07010533.txt']
答案 1 :(得分:1)
您可以像这样使用正则表达式:
import re
pat = re.compile('%s.*\.txt' % dt)
for can in l:
if(pat.search(can)):
print can
答案 2 :(得分:0)
matches = []
for file in list:
if file.startswith(dt) and '.txt' == file[-4:]: matches.append(file)
print (matches)