python index()不起作用

时间:2012-07-12 18:04:37

标签: python indexing

我正在尝试在控制台中打印文件名“xyz.0.html”。它正在吐出错误"substring not found"

目录中的文件:

xyz.0.html
xyz.1.html
xyz.2.html

for name in glob.glob('*html'):
  if name.index('.0.html'):
    print name

5 个答案:

答案 0 :(得分:5)

为什么不使用str.endswith()

>>> "xyz.0.html".endswith(".0.html")
True

答案 1 :(得分:2)

if ".0.html" in name: 
   print name

if name.endswith(".0.html"):
      print name

答案 2 :(得分:2)

你可能想要

if '.0.html' in name:

或者,

if name.endswith('.0.html'):

如果子字符串不在字符串中,则您的版本会引发错误(如果子字符串位于字符串的开头,它将评估为False)因为index方法返回索引在找到子字符串的字符串中(如果未找到子字符串,则引发异常)。

答案 3 :(得分:2)

错误正是它所说的。当您在名称name.index('0.html')上调用"xyz.1.html"时,找不到该字符串。 index在这种情况下引发错误。如果你不想这样,你可以使用find方法(如果找不到子字符串则返回-1),或者你可以捕获异常。

答案 4 :(得分:0)

你可以使用python的生成器

print [name for name in glob.glob('*html') if name.endswith(".0.html")]