python n=str.index('=')ValueError: substring not found

jinger18 2010-03-20 01:17:01
有一个字符串 id2=9787111289234,通过检索等号后面的字符串链接网址。
我是这样写的:str = fopen.readline()
n=str.index('=')
str=str[n+1:]
能够运行,但是运行结束时出现错误提示:Traceback (most recent call last):
File "D:\Reader\python2.5\ISBNimage\china_pubImage\ggetImagefromchina_pub.py", line 55, in <module>
n=str.index('=')
ValueError: substring not found

单独在python shell中能够使用n=str.index('=');str=str[n+1:]这两个语句,但是为什么一写到程序中就出错呢?

分不多,请大家见谅!!
...全文
6691 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinger18 2010-03-21
  • 打赏
  • 举报
回复
呵呵,我知道split('=')[-1]的意思了,谢谢!!
jinger18 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 moxien 的回复:]
這句只是將字符串用'='分隔成一個列表。
如果確定只有一個等號,可以用url=line.split("=")[-1]來獲取等號後面全部的內容。
[/Quote]

厉害,这样改后就没有错误了。
如果文件中的字符是这样“id2=9787111289234;”那要如何读取等号和分号之间的数字呢?
还想再问下后面的[-1]是什么意思呢,能详细讲解下吗,我刚开始学不懂。
海楓 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 jinger18 的回复:]

引用 2 楼 z4none 的回复:

url=line.split("=")[0]

这一句能读取等号后面的字符吗
[/Quote]
這句只是將字符串用'='分隔成一個列表。
如果確定只有一個等號,可以用url=line.split("=")[-1]來獲取等號後面全部的內容。
jinger18 2010-03-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 z4none 的回复:]

url=line.split("=")[0]
[/Quote]
这一句能读取等号后面的字符吗
jinger18 2010-03-20
  • 打赏
  • 举报
回复
str = fopen.readline()
n=str.index('=')
str=str[n+1:]
print str
#结果str是9787546322339,正确读了出来
海楓 2010-03-20
  • 打赏
  • 举报
回复
樓上正解,建議不要用str作為變量名稱。
將str print也來看下什麼結果。
z4none 2010-03-20
  • 打赏
  • 举报
回复
确定读取到的行有等号么。?
你可能需要进行异常处理

话说我觉得可以这样写
line=fopen.readline()
url=line.split("=")[0]
angel_su 2010-03-20
  • 打赏
  • 举报
回复
找不到=号报错,所以应该str = fopen.readline()没有正确返回预估的字串吧。
另外,str是内建名称最好是避开换个名...

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧