python检查文件

时间:2009-12-16 00:08:01

标签: python urllib2

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

中命名的图片

我有:

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

整天阅读手册,无法解决:(

3 个答案:

答案 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所说,缩进是错误的,您需要exceptfinally

如果要检查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