Python 检测文件的mime/扩展名

Python 检测文件的mime/扩展名,python,Python,我正在尝试编写一个程序,当用户选择一个文件时,它可以告诉他们它是jpg、wav还是其他类型的文件,任何其他类型的文件都属于html。我被困在试图处理它是否是这些类型中的任何一种 def openSoundOrPicture(): file=pickAFile() print file print len(file) start=file.rfind('.') print start if start !=-1: 这是我到目前为止所做的,但它不起作用。顺便说一句,我对Py

我正在尝试编写一个程序,当用户选择一个文件时,它可以告诉他们它是jpg、wav还是其他类型的文件,任何其他类型的文件都属于html。我被困在试图处理它是否是这些类型中的任何一种

def openSoundOrPicture():
  file=pickAFile()
  print file
  print len(file)
  start=file.rfind('.')
  print start
  if start !=-1:
这是我到目前为止所做的,但它不起作用。顺便说一句,我对Python或任何编码都是新手

def openSoundOrPicture():
  file=pickAFile()
  print file
  ln=len(file)
  print ln
  start=file.rfind('.')
  print start
  if start !=-1:
   if file[start:ln]==".jpg"
     print "File type:jpg"
   elif file[start:ln]==".wav"
     print "File type:wav"

您基本上是在尝试按扩展名对文件进行分类。认识到还有其他类似的方法。但是,对于您要求执行的操作,请查看以下代码段:

recognized_types = ["jpg", "wav"]
default_type = "html"

file = pick_a_file()
file_extension = os.path.splitext(file)
if file_extension in recognized_types:
    print "File Type: " + file_extension
else:
    print "File Type: " + default_type

使用类似start的文件[start:]进行切片,以将扩展名转换为单独的字符串,然后进行相应的比较查看,它可以为给定文件名的文件类型提供一个片段。否则,会有一个字符串,返回基文件名及其扩展名,作为单独的字符串。@RNar:为什么?os.path.splitext有什么问题,它会为您拆分扩展?@MartijnPieters不同的方法,相同的值。我想既然OP已经得到了索引,那么最好使用它,这样可以避免外部导入,尽管我怀疑他是否已经在使用os,如果他正在使用文件,这就是我到目前为止所做的