from itertools import chain, groupby, repeat; from pathlib import Path
for p, t in chain.from_iterable([chain([("type", "path")], list(zip(repeat(x, 10), y)), [("", f"(another {len(list(y))+1})")] if next(y, None) else []) for x, y in groupby(sorted(Path('/proc').iterdir(), key=lambda x: x.lstat().st_mode), key=lambda x: x.lstat().st_mode)]): print("{!s:<30}{:<10}".format(t, p))