В соответствии с документами для модуля glob
под крышкой glob
используется fnmatch.fnmatch
. fnmatch
документ описывает только следующие шаблоны:
Pattern | Meaning
--------- | -----------------------------
* | matches everything
? | matches any single character
[seq] | matches any character in seq
[!seq] | matches any character not in seq
Для буквального совпадения заключите метасимволы в скобки. Например, «[?]» Соответствует символу «?».
Попробуйте вместо этого использовать последовательность символов в скобках:
glob.glob('/Users/Downloads/2019010[87]JPYUSDabced.csv')
Использование os.walk
Предполагая, что вы ищете для поиска определенных диапазонов дат, вам может потребоваться использовать os.walk
с re
регулярными выражениями, чтобы получить более сложный шаблон, который вы находясь в поиске.
Предостережение: os.walk
рекурсивно проходит через каждого режиссера из стартовой позиции, что может быть не тем, что вы хотите.
Вы должны адаптировать регулярное выражение к любой ситуации, но вот пример:
Регулярное выражение соответствует дате 20181208
или дате 20190107
, но должно содержать идентификатор JPYUSDabced.csv
.
regex = re.compile("(?:(?:20181208)|(?:20190107))JPYUSDabced.csv")
files = []
for dirpath, dirnames, filenames in os.walk('/Users/Downloads'):
for f in filenames:
if regex.match(f):
files.append(os.path.join(dirpath, f))
print(files)
# ['/Users/Downloads/20190107JPYUSDabced.csv', '/Users/Downloads/20181208JPYUSDabced.csv']