=Start=
缘由:
使用glob模块进行文件查找和匹配。
参考解答:
比如我想匹配「20160918 – 20160930」这个区间中的内容,下面这种写法是不生效的:
file_list = glob.glob('/opt/logs/sec.log-201609[18-30]')
因为 glob 模块不支持正则表达式,所以需要使用「遍历」的方式来进行全量匹配,可以使用「字符区间[]」来间接达到此目的:
file_list = glob.glob('/opt/logs/sec.log-2016091[8-9]') file_list += glob.glob('/opt/logs/sec.log-201609[2-3][0-9]')
上面的内容中需要注意的是——「字符区间[]」这个表示的是「单个字符」,没办法表示「08」、「10」等多个字符的情况,需要使用多次「字符区间[]」才行。
参考链接:
- https://docs.python.org/2/library/glob.html
- https://pymotw.com/2/glob/
- http://stackoverflow.com/questions/2692706/use-python-glob-to-find-a-folder-that-is-a-14-digit-number
- http://stackoverflow.com/questions/23735529/how-to-use-glob-to-read-limited-set-of-files-with-numeric-names
=END=