我試圖在控制檯中打印文件名'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