擅长:python、mysql、java
<p><code>glob</code>不接受正则表达式,因此需要编写自己的glober。但是用<code>os.listdir</code>很容易做到。您可以使用regex中的组来查找多个日期,例如<code>r"(2012|2013|2014)_(10|11)_\dproduptd\d{4}"</code>。下面的示例使用年份和月份列表格式化regex。在</p>
<pre><code>import os
import re
def produpdt_glob(path, years=None, months=None):
if years is None:
years = r'\d' * 4
if months is None:
months = r'[01]\d'
regex = r'({})_({})_\dprodupdt\d{4}'.format('|'.join(years), '|'.join(months))
match = re.compile(regex).match
for fn in os.listdir(path):
if match(fn):
fn = os.path.join(path, fn)
if os.path.isfile(fn):
yield fn
</code></pre>