我正在尝试在控制台中打印文件名“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
答案 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")]