在那里学习python。我想写一个脚本来检查我的网络服务器是否有在根 123.jpg 中命名的图片
我有:
import urllib2
numeruks=100
adresiuks="http://localhost/" + str(numeruks) +".jpg"
try:
if numeruks < 150:
numeruks = numeruks + 1
urllib2.urlopen(adresiuks).read()
整天看手册,解决不了:(
您可以在尝试访问 URL 时测试 404(甚至不必发出 a 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
这段代码是独立存在的吗?如果是这样,你错过了一个循环。另外,正如codeape所说,缩进是错误的,你需要一个except
或一个finally
。
如果要检查 100 到 150 之间的所有数字,则需要遍历它们。你的代码现在只更新numeruks
一次,而且永远不会更新adresiuks
。如果你想用 来检查错误try
,你需要用 来跟进except
,这可以很简单pass
(但更可能是continue
)。
我有点犹豫是否给你实际的代码,好像你在学习一样,如果你自己弄清楚,你可能会学得更好。;)
增加 numeruks 后,您应该重置 adresiuks。
IE:
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()
使用您的网络浏览器仔细检查文件是否可用。
例如,我的 Web 服务器正在侦听端口 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