利用matplotlib.font_manager模块中的list_fonts()函数按扩展名递归遍历文件

matplotlib包总能给我们带来惊喜,比如cbook模块里居然包含了大量Python cookbook的案例实现。
font_manager模块中的list_fonts()也很实用,虽然名字是列举字体,但是实打实的通用的遍历文件函数。

源码

非常简洁,主要用了一个列表解析式。

def list_fonts(directory, extensions):
    """
    Return a list of all fonts matching any of the extensions, found
    recursively under the directory.
    """
    extensions = ["." + ext for ext in extensions]
    return [os.path.join(dirpath, filename)
            # os.walk ignores access errors, unlike Path.glob.
            for dirpath, _, filenames in os.walk(directory)
            for filename in filenames
            if Path(filename).suffix.lower() in extensions]

应用

import matplotlib.font_manager as fm
file_list = fm.list_fonts(r"e:\py",['txt','doc'])
print(file_list)
['e:\\py\\1.txt', 'e:\\py\\2.txt', 'e:\\py\\kmeans_data.txt', 'e:\\py\\mm.txt']
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值