首页 > 解决方案 > Python - 如果我不知道扩展名,如何在文件夹中找到文件?

问题描述

假设我有一个文件的完整路径,除了扩展名:

FileNoExt = "/Users/username/Desktop/song"

我需要检索包括文件扩展名的完整路径并将其传递给变量:

FileWithExt = "/Users/username/Desktop/song.mp3"

我在 stackexchange 上发现了很多类似的问题;但是,似乎没有一个答案有效。我在 macOS 上使用 PyCharm。

标签: pythonmacos

解决方案


您可以简单地使用glob模块,例如,

>>> import glob
>>> file_wo_ext = '/home/xxx/python/doc'
>>> glob.glob(file_wo_ext + '*')
['/home/xxx/python/doc.comments', '/home/xxx/python/doc.fornow']

或者如果你习惯了pathlib,你可以做类似的事情,

>>> import pathlib
>>> file_wo_ext = '/home/xxx/python/doc'
>>> p = pathlib.Path(file_wo_ext)
>>> p.parent
PosixPath('/home/xxx/python')
>>> p.stem
'doc'
>>> list(p.parent.glob(p.stem + '*'))
[PosixPath('/home/xxx/python/doc.comments'), PosixPath('/home/xxx/python/doc.fornow')]

推荐阅读