我有:
import urllib2
numeruks=100
adresiuks="http://localhost/" + str(numeruks) +".jpg"
try:
if numeruks < 150:
numeruks = numeruks + 1
urllib2.urlopen(adresiuks).read()
整天阅读手册,无法解决:(
答案 0 :(得分:1)
您可以在尝试访问网址时测试404(甚至无需发布read()
):
import urllib2
n = 123
try:
url = 'http://localhost/%d.jpg' % n
urllib2.urlopen(url)
except urllib2.HTTPError, e:
if e.code == 404:
print '%d.jpg was not found' % n
else:
raise # if the issue wasn't a 404, then re-raise the exception
答案 1 :(得分:1)
此代码是否独立?如果是这样,你就错过了一个循环。此外,正如codeape所说,缩进是错误的,您需要except
或finally
。
如果要检查100到150之间的所有数字,则需要循环它们。您现在的代码只会更新numeruks
一次,并且永远不会更新adresiuks
。如果您想使用try
检查错误,则需要使用except
进行跟进,这可以像pass
一样简单(但更可能是continue
}})。
我有点犹豫要不要给你实际的代码,好像你正在学习,如果你自己弄清楚的话,你可能会更好地学习它。 ;)
答案 2 :(得分:0)
增加数字后,你应该重置adresiuks。
即:
adresiuks="http://localhost/" + str(numeruks) + ".jpg"
try:
if numeruks < 150:
numeruks = numeruks + 1
adresiuks = "http://localhost/" + str(numeruks) + ".jpg"
print adresiuks
urllib2.urlopen(adresiuks).read()
使用网络浏览器仔细检查文件是否可用。
例如我的网络服务器正在侦听端口8000,所以我必须添加端口,即
http://localhost:8000/123.jpg
。
这是一个简单的运行脚本,因为它是一个.jpg,它将是打印的垃圾:
import urllib2
numeruks = 123
adresiuks = "http://localhost/" + str(numeruks) + ".jpg"
print adresiuks
thefile = urllib2.urlopen(adresiuks).read()
print thefile