在JES中编写一个能够区分文件类型的函数

时间:2015-03-03 02:25:57

标签: jes

“编写一个将获取文件名的函数(使用pickAFile),然后识别它是图片还是声音文件,甚至是其他文件类型。然后该文件应被解释为图片,如果它的类型是jpg(然后打印一个适当的消息,然后退出)或声音,如果它的类型是wav(然后打印一个适当的消息,然后退出),如果它既不是图片也不是声音文件,那么一个错误信息必须打印。此错误消息应包括文件的类型(或缺少类型,例如可能没有句点的文件名,例如ducksjpg)。请记住,文件类型可以是2,3,4甚至更长的字母!“

所以这就是我到目前为止所知道的并且它有效:

def sortoutfiles():
 f= pickAFile()
 print f
 filename=f
 if filename.endswith (".jpg"):
   print "It's a picture"
 if filename.endswith (".wav"):
   print " It's a sound"
 else:
   print"Oops! Did not choose a picture or a sound file"

由于某些原因,当我尝试在第5行使用rfind-get错误消息无效语法时程序无效

def sortoutfiles():
   f= pickAFile()
   print f
   filename=f  
   if p=filename.rfind('.jpg'):
      print "It's a picture"
   if filename=f.rfind(".wav"):
      print " It's a sound"
   else:
      print"Oops! Did not choose a picture or a sound file"
here

有人能告诉我在使用rfind编写程序时我做错了吗?

1 个答案:

答案 0 :(得分:0)

Apco 1P00?

使用rfind找出文件扩展名

f = pickAFile()
p = f.rfind('.jpg') #finds if the file ends in .jpg
s = f.rfind('.wav') #finds if the file ends in .wav
length = len(f) #finds the length of the file name

以此为基础,使用if语句从这里开始。

回想一下最后一个实验室。

>>> testString = 'abc DEf ghi ihg uVW xyz'
>>> print testString.find('k')
-1           #"Not found" can't be 0, so result is -1