获取所有匹配模式的子目录

Get all subdirectories that match pattern

我正在使用 Python 3.7.7.

我有获取所有子目录的代码:

from pathlib import Path

# Get all subdirectories.
p = Path(root_path)
dir_lst = [str(x) for x in p.iterdir() if x.is_dir()]

但现在我需要获取名称以 Challen_2013*.

模式开头的所有子目录

我该怎么做?

您可能想要使用 glob:

import glob
files = glob.glob(f"root_path/{Challen_2013*}")
for file in files:
# do stuff

有点脏,但是简单

[str(x) for x in p.iterdir() if x.is_dir() and str(x).startswith('Challen_2013')]

您可以像上一个答案一样使用glob,或者只使用startswith来过滤结果:

[str(x) for x in p.iterdir() if x.is_dir() if x.name.startswith("Challen_2013")]