проверка питона на наличие файлов - PullRequest
0 голосов
/ 16 декабря 2009

изучение 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 ]

1 голос
/ 16 декабря 2009

Этот код стоит сам по себе? Если это так, вы пропустите петлю. Кроме того, как сказал codeape, отступы неверны, и вам нужно except или finally.

Если вы хотите проверить все числа от 100 до 150, вам нужно их зациклить. Ваш код в его нынешнем виде обновляется numeruks только один раз и никогда не обновляется adresiuks. Если вы хотите проверить наличие ошибки с try, вам необходимо указать except, которая может быть такой же простой, как pass (но, скорее всего, будет continue).

Я немного не решаюсь дать вам реальный код, как будто вы учитесь, вы, вероятно, узнаете его лучше, если разберетесь сами. ;)

1 голос
/ 16 декабря 2009

Вы можете проверить на 404 в ваших попытках получить доступ к URL (и даже без необходимости выдавать 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
0 голосов
/ 16 декабря 2009

После того, как вы увеличите число, вы должны сбросить адрес.

т.е:.

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    
...