python glob.glob() 和 os.listdir()的效率问题

两者都可以进行文件遍历, 区别在于glob返回绝对完整路径,而os.listdir返回的是文件名。可以通过一些写法实现等价

但是在数据较多的情况, glob的效率明显低于listdir,可能正则表达式不如直接的 endswith、startswith、in 这类操作效率高。

    imgs = glob.glob(os.path.join(spath, "**/*_ends.jpg"), recursive=True)  # 效率太低了
    imgs = [os.path.join(spath, i) for i in os.listdir(spath) if (i.endswith('_ends.jpg'))]
posted @ 2022-11-09 17:08  wioponsen  阅读(398)  评论(0编辑  收藏  举报