Python pathlib使用glob查找具有给定stem的所有文件

Python pathlib使用glob查找具有给定stem的所有文件,python,pathlib,Python,Pathlib,基本上我有一个可行的解决方案,但考虑到pathlib的简单性,我觉得我做错了 MWE: 从pathlib的角度来看,我可能会执行类似于filename.glob(“*”)的操作,但它不起作用(返回[]) 我在文档中找到了带有后缀的方法,但它是用于替换的,而不是全局查找。您可以使用Path.glob(“*”)和列表理解。它会感觉更像蟒蛇 filename=Path(“a/b/c.txt”) [f表示filename.parent.glob(“*”)中的f,如果f.stem==filename.st

基本上我有一个可行的解决方案,但考虑到
pathlib
的简单性,我觉得我做错了

MWE:

从pathlib的角度来看,我可能会执行类似于
filename.glob(“*”)
的操作,但它不起作用(返回
[]


我在文档中找到了带有后缀的
方法,但它是用于替换的,而不是全局查找。

您可以使用
Path.glob(“*”)和列表理解。它会感觉更像蟒蛇

filename=Path(“a/b/c.txt”)
[f表示filename.parent.glob(“*”)中的f,如果f.stem==filename.stem]
#[PosixPath('a/b/c.txt')、PosixPath('a/b/c.pdf')]
此外,如果只在单个目录中查找,则可以使用
Path.iterdir()

filename=Path(“a/b/c.txt”)
[f表示filename.parent.iterdir()中的f,如果f.stem==filename.stem]
#[PosixPath('a/b/c.txt')、PosixPath('a/b/c.pdf')]
filename = Path('a/b/c.txt')
# I want to find all files in `a/b` called `c` with any extension, e.g: `c.pdf`

list(filename.parent.glob(f"{filename.stem}.*"))
# [PosixPath('a/b/c.txt'), PosixPath('a/b/c.pdf')]