我有一个以下的文件名列表
files = [
'/dl/files/4j55eeer_wq3wxxpiqm.jpg',
'/home/Desktop/hjsd03wnsbdr9rk3k',
'kd0dje7cmidj0xks03nd8nd8a3',
...
]
问题在于大部分文件名没有扩展名,那么获取这些文件的文件扩展名的最佳方法是什么?
我不知道这是否可能,因为Python会将所有文件视为没有与之关联的文件类型的缓冲区或字符串对象。
这个能做到吗?
一旦您使用magic
来获取MIME类型,您可以使用mimetypes.guess_extension()
来获取其扩展名。
guess_extension
对于 mimetype image/jpeg
返回 *.jpe
,它是否只是在 '/' 上分割并返回第二个元素的前三个字符,再前缀加上 .
呢? - Amythreturn '.' + mime.split('/')[1]
会返回更精确的结果,你说呢? - Amythtext/plain
不应该使用.pla
作为文件扩展名。 - Ignacio Vazquez-Abramsimport filetype
fileinfo = filetype.guess(mock.jpg) #the argument can be buffer/file
detectedExt = fileinfo.extension
detectedmime = fileinfo.mime
file
通常非常擅长查找文件类型... - Bakuriufile
使用libmagic
,而且它是跨平台的。请参见 John Zwinck 下面链接的python-magic
库。 - Martijn Pieters