from pathlib import Path
my_dir = "."
all_descendant = [p for p in Path(my_dir).glob("**/*")] # my_dir下所有的目录和文件,递归到最深
all_dir = [p for p in Path(my_dir).glob("**")] # my_dir下所有的目录,递归到最深
all_son = [p for p in Path(my_dir).glob("*")] # my_dir下一层的目录和文件
all_p_file = [p for p in Path(my_dir).glob("**/p*")] # my_dir下所有以p开头的文件
all_af_dir_file = [p for p in Path(my_dir).glob("[a-f]*/*")] # my_dir下所有a-f区间开头的文件夹下的文件
glob一共四个符号:
?表示任意长度为1的字符
* 表示任意长度的任意字符
[ ] 表示范围,[a-h] 表示从a到h的闭区间单个字符
** 表示遍历各层返回所有的目录
还可以很方便的获得文件的后缀
from pathlib import Path
all_path = [p for p in Path(".").glob("**/*")] # 当前路径下的所有目录、文件
all_suffix = [p.suffix for p in all_path] # all_path下所有目录、文件的后缀名
# 如果是目录,则后缀名为空。
可以判断是不是目录
is_dir_list = [p.is_dir() for p in all_path] # 返回True, False