2

我有如下文件:

filename_000
filename_000.sh
filename_000.e
filename_000.o

有没有办法可以在 glob 函数中指定正则表达式?像这样的东西:

from glob import glob
for file in glob("filename_[0-9]{1,3}$"):
    ...

有什么建议么?

4

3 回答 3

3

另一种可能:

glob("filename_???")
于 2012-10-26T20:23:24.580 回答
1

使用re模块:

import re
import os
pattern="filename_[0-9]{1,3}$"
for file in re.findall(pattern ,'\n'.join(os.listdir())):
    ...
于 2012-10-26T20:21:18.780 回答
0

没关系。刚刚想通了。我猜一个正则表达式会做到这一点:

from glob import glob
import re

re_file = re.compile("filename_[0-9]{1,3}$")
files = glob("filename*")
files = [f for f in files if re_file.findall(f)]
于 2012-10-26T20:20:57.250 回答