我试图在控制台中打印文件名'xyz.0.html
'。它吐出错误"substring not found"
python index()不起作用
目录中的文件:
xyz.0.html
xyz.1.html
xyz.2.html
蟒蛇
for name in glob.glob('*html'):
if name.index('.0.html'):
print name
我试图在控制台中打印文件名'xyz.0.html
'。它吐出错误"substring not found"
python index()不起作用
目录中的文件:
xyz.0.html
xyz.1.html
xyz.2.html
蟒蛇
for name in glob.glob('*html'):
if name.index('.0.html'):
print name
你可能想
if '.0.html' in name:
或者,如果子不是字符串中
if name.endswith('.0.html'):
你的版本会引发错误(如果子是在一开始就计算为False
因为index
方法返回找到子字符串的字符串中的索引(或者如果找不到子字符串,则会引发异常)。
尝试
if ".0.html" in name:
print name
或
if name.endswith(".0.html"):
print name
为什么不使用str.endswith()
?
>>> "xyz.0.html".endswith(".0.html")
True
错误正是它所说的。当您在名称"xyz.1.html"
上致电name.index('0.html')
时,未找到该字符串。 index
在这种情况下引发错误。如果你不想要这个,你可以使用find
方法(如果没有找到子字符串,则返回-1),或者你可以捕获异常。
+1 - 这是一个很好的原因,其他答案只是告诉你其他(更好)的方式,而不是为什么问题的版本是错误的。 – 2012-07-12 18:08:20
烨奏效。谢谢:) – dbs 2012-07-12 18:06:50