使用"模糊匹配"文件名 - Python读取或打开文件

alv*_*vas 0 python regex io file

给定目录中的文件列表:

import os
os.listdir('system-outputs/newstest2016/ru-en')
Run Code Online (Sandbox Code Playgroud)

[OUT]:

['newstest2016.AFRL-MITLL-contrast.4524.ru-en',
 'newstest2016.AFRL-MITLL-Phrase.4383.ru-en',
 'newstest2016.AMU-UEDIN.4458.ru-en',
 'newstest2016.NRC.4456.ru-en',
 'newstest2016.online-A.0.ru-en',
 'newstest2016.online-B.0.ru-en',
 'newstest2016.online-F.0.ru-en',
 'newstest2016.online-G.0.ru-en',
 'newstest2016.PROMT-Rule-based.4277.ru-en',
 'newstest2016.uedin-nmt.4309.ru-en']
Run Code Online (Sandbox Code Playgroud)

然后我有输入:

filename, suffix = 'newstest2016.AFRL-MITLL-contrast', 'ru-en'
Run Code Online (Sandbox Code Playgroud)

使用文件名,如果我想进行正则表达式匹配,以便我可以读取文件newstest2016.AFRL-MITLL-contrast.4524.ru-en,我可以这样做:

import re
fin = open(next(_fn for _fn in os.list('system-outputs/newstest2016/ru-en') if re.match(filename + '.*.' + suffix, _fn) for _fn in))
Run Code Online (Sandbox Code Playgroud)

但有没有办法读取/打开"模糊匹配"文件名?必须有比re.match上面原油更好的方式.

可以假设应该总是有一个明确的匹配os.listdir.

0xc*_*0de 5

我相信glob可能是更好的方式.