-4

“编写一个将获取文件名的函数(使用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 编写程序时我做错了什么吗?

4

1 回答 1

0

阿普科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 
于 2015-03-04T23:43:07.377 回答