0

在那里学习python。我想写一个脚本来检查我的网络服务器是否有在根 123.jpg 中命名的图片

我有:

import urllib2
numeruks=100
adresiuks="http://localhost/" + str(numeruks) +".jpg"
try:
    if numeruks < 150:
    numeruks = numeruks + 1
    urllib2.urlopen(adresiuks).read()

整天看手册,解决不了:(

4

3 回答 3

1

您可以在尝试访问 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
于 2009-12-16T00:22:24.983 回答
1

这段代码是独立存在的吗?如果是这样,你错过了一个循环。另外,正如codeape所说,缩进是错误的,你需要一个except或一个finally

如果要检查 100 到 150 之间的所有数字,则需要遍历它们。你的代码现在只更新numeruks一次,而且永远不会更新adresiuks。如果你想用 来检查错误try,你需要用 来跟进except,这可以很简单pass(但更可能是continue)。

我有点犹豫是否给你实际的代码,好像你在学习一样,如果你自己弄清楚,你可能会学得更好。;)

于 2009-12-16T00:39:41.337 回答
0

增加 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    
于 2009-12-16T00:43:21.823 回答