2

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

目录下的文件:

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

Python

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

5 回答 5

5

为什么不使用str.endswith()

>>> "xyz.0.html".endswith(".0.html")
True
于 2012-07-12T18:06:21.183 回答
2

尝试

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

或者

if name.endswith(".0.html"):
      print name
于 2012-07-12T18:06:12.433 回答
2

你可能想要

if '.0.html' in name:

或者,

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

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

于 2012-07-12T18:06:17.533 回答
2

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

于 2012-07-12T18:06:50.000 回答
0

你可以使用python的生成器

print [name for name in glob.glob('*html') if name.endswith(".0.html")]
于 2012-07-12T18:13:56.607 回答