查看文件类型的长度并确定要打开的文件类型

时间:2015-11-09 21:18:42

标签: python file if-statement range

处理一个接收文件的程序并确定它是什么类型。它必须是.wav或.jpg文件才是正确的,如果它不是其中之一,它将显示一条消息,说明要选择正确的文件类型。但是,我坚持如何让它来确定选择什么类型的文件,因为对于这个程序我不允许使用f.endswith(),所以我认为范围可能有效,但我不确定是什么类型的参数应该是,或者如果范围甚至是如何确定文件类型的正确选择。请帮助:)

error C4146: unary minus operator applied to unsigned type, result still unsigned

好吧我尝试了类似这样的东西,但它给了我一个语法错误,你能帮我解决一下这个问题吗?

def fileType():
  f = pickAFile
  print f
  for f in range ():
      start = f.rfind(".") 
      if start!=-1:

          print A .wav file type was selected

          print A .jpg file type was selected
      else:
          print No file type was chosen
          print Please choose a different file type

2 个答案:

答案 0 :(得分:0)

字符串切片是您正在寻找的,例如:

>>> s = 'file.wav'
>>> s[s.rfind('.'):]
'.wav'

s[index:index2]会返回s的{​​{1}}副本,该副本从index开始,但不包括所有字符index2

然后你可以做一下检查:

s[s.rfind('.'):] == '.wav' # this statement is == s.endswith('.wav')

使用字符串切片

>>> s = 'file.wav'
>>> s[-3:]
'wav'

答案 1 :(得分:-2)

也许您可以使用contains方法。您可以在if语句中编写类似FileVariable.contains("png")的内容。这些条件不是陈述。让我把它写出来清楚。

if (!(FileVariable.contains("fileextension"))
     && !(FileVariable.contains("otherfileextension") {

    // if it  makes  it past this sort of  filter
    // then  it will only be using the  file types that you mention

}

您也可以代替说每个不能使用的过滤器,告诉它可以通过什么。这会简单得多。