问题描述
我最近尝试制作一个python代码,该代码采用文件的路径不带扩展名,并确定文件的扩展名。
我在寻找类似以下示例的内容。在示例中,扩展名为exe(但是代码尚不知道)。
path = 'C:\\MyPath\\Example'
#takes the path above and guesses the programs extension:
extension = guess_extension(path)
#adds the extension to the path:
fullPath = path+extension
print(fullPath)
输出:
C:\MyPath\Example.exe
如果您知道可以执行此操作(或类似操作)的python模块,请在下面列出。
我尝试使用文件类型(filetype.guess())和模仿类型(mimetypes.guess_extension())模块,但它们都将返回无值。
我也曾尝试使用this one之类的许多问题的答案,但这仍然行不通。
解决方法
听起来好像内置glob
模块(glob
docs)可能正是您想要的。该模块在Python中提供Unix样式模式扩展功能。
在下面的示例中,不完整的path
变量在传递给str
时附加了.*
glob.glob
。这实际上告诉glob.glob
返回在主机系统中找到的与list
相同的有效路径中的path
,后跟一个句点(指定文件扩展名),并带有星号匹配path + '.'
之后的所有字符。
import glob
path = r'C:\Program Files\Firefox Developer Edition\minidump-analyzer'
full = glob.glob(path+'.*')
print(full[0])
输出:C:\Program Files\Firefox Developer Edition\minidump-analyzer.exe
值得注意的是,以上仅是如何利用glob
作为问题解决方案的一部分的说明。应该根据程序的需要正确处理意外的输入,极端情况,异常等。