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']