python实例程序运行时报错:“IndexError: list index out of range”

python2.7运行时报错:PSC:\mystuff>pythontest06.pyTraceback(mostrecentcalllast):File"test06.... python2.7运行时报错:
PS C:\mystuff> python test06.py
Traceback (most recent call last):
File "test06.py", line 12, in <module>
url = sys.argv[1]
IndexError: list index out of range
===========================

'''
Created on 2013-6-20

@author: zcfrank1st
'''
import urllib
from bs4 import BeautifulSoup
import fnmatch
import sys

if __name__ == '__main__':
url = sys.argv[1]
html = urllib.urlopen(url).read()
soup = BeautifulSoup(html)

for link in soup.find_all('a'):
content = link.get('href')
if type(content)==type(None):
pass
elif fnmatch.fnmatch(content, "*.mp4"):
print content
else:
pass
实例程序源地址为:
http://www.oschina.net/code/snippet_658568_22342
展开
 我来答
别在裤腰带7ba97
2018-04-12 · TA获得超过1.9万个赞
知道大有可为答主
回答量:223
采纳率:100%
帮助的人:39.7万
展开全部

1.异常种类

python中的异常种类非常多,每个异常专门用于处理某一项异常!!!

下面是一些常用的异常:

2.异常基础

在编程过程中为了增加友好性、容错性和健壮性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!!还有,有时我们不希望一个小bug的出现让整个程序都崩溃,自动退出或者蓝屏,我们需要抓取这个错误异常,并进行处理,让用户能够继续使用下去。  

3.注:在python3中,except Exception , ex的别名方法已经不能使用,逗号被认为是两种异常的分隔符,而不是取别名。

下面是一个实例:

4.更多的异常在这里:

如果程序发生的异常不在你设定的异常之中,那么依然会报错。

5. 这个例子中,你只设置了捕获IndexError,而实际会发生一个ValueError,因此它依然会报错。

要同时捕获多个异常如何写呢?

7.程序会按异常的先后顺序进行捕获,任意一个被捕获,则进行异常处理,并忽略try会后的代码和别的异常处理代码。

万能异常:Exception

在python的异常中,有一个万能异常:Exception,他可以捕获任意异常,相当于一个人把所有的活全干了。那你可能要问了,既然有这个万能异常,其他异常是不是就可以不需要了!

当然不是,对于特殊处理或提醒的异常需要先定义,用于准确判断错误类型,存储错误日志,而最后定义Exception用来确保程序正常运行。

寄宿国风原创汉服
2013-06-30 · TA获得超过119个赞
知道小有建树答主
回答量:207
采纳率:100%
帮助的人:110万
展开全部
sys.argv[1] 表示取命令行的第一个参数,但是你在调用test06.py的时候没有加任何参数,所以数组当然就越界了, 从这个代码来看,你应该在test06.py后面加一个网址,比如 http://www.baidu.com/xxx/yyy/... 这样就可以了。
追问

已成功。谢谢。初学者多谢指教。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
编程小菜鸟9
2013-06-30 · TA获得超过237个赞
知道小有建树答主
回答量:183
采纳率:100%
帮助的人:142万
展开全部
就是url没有取值,sys.argv[1],代表命令行的参数,你可以在运行文件的时候加一个网址,python test06.py http://xxxxxxxx 这样就可以了。否则的话,sys.argv只存在sys.argv[0],他的值是运行文件的名称,也就是test06.py.所以会提示数组越界
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sdwffzlll
2017-05-12 · TA获得超过758个赞
知道小有建树答主
回答量:498
采纳率:85%
帮助的人:244万
展开全部
sys.argv[0] 是 test06.py
sys.argv[1] 是 test06.py 后的数据,你可以这样调用:
python test06.py http://www.baidu.com/
sys.argv[1] 就是 http://www.baidu.com/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式