Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите перевести скрипт с PHP на Python 
V
    Опции темы
nule
Дата 29.10.2012, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 76
Регистрация: 3.11.2011

Репутация: нет
Всего: нет



Здравствуйте!
Есть рабочий скрипт на PHP для скачивания данных с wikimapia:
Код

$i=74; // долгота западной стороны прямоугольника в градусах
$imax=80; // долгота восточной стороны
$jmax=36; // широта северной стороны
while($i<=$imax)
{
$j=31; // широта южной стороны
$i2=$i+0.25; //скачиваем квадратами по четверти градуса
while($j<=$jmax)
{
$j2=$j+0.25;
exec ('wget "http://api.wikimapia.org/?function=box&key=62C89171-7A50DB4A-EBE5D474-888373FC-E8413EBA-60D2158E-1A84B7AB-FC15D681&bbox='.$i.','.$j.','.$i2.','.$j2.'&count=50000&format=kml&pack=gzip"');
$j+=0.25;
}
$i+=0.25;
}

Возникла острая необходимость перевести его на Python, но на питоне я никогда не программировал.
Основных вопроса два:
Можно ли в питоне также просто использовать wget, или лучше использовать встроенные функции?
Как синтаксически правильно "вклинить" переменные i, i2, j, j2 в ссылку?
Спасибо!
 
PM MAIL   Вверх
4ell
Дата 29.10.2012, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 17.9.2011

Репутация: 1
Всего: 1



Как-то так
Код

from os import system

def xfrange(start, stop, step):
    while start < stop:
        yield start
        start += step

step = .25
for i in xfrange(74, 80, step):
    for j in xfrange(31, 36, step):
        cmd = 'wget "http://api.wikimapia.org/?function=box&key=62C89171-7A50DB4A-EBE5D474-'
              '888373FC-E8413EBA-60D2158E-1A84B7AB-FC15D681&bbox={i},{j},{i2},{j2}&count=50000&format=kml&pack=gzip"'
        excmd = cmd.format(i=i, j=j, i2=i+step, j2=j+step)
        system(excmd)

xfrange - генерирует последовательность типа [start, start + step, start + 2step, start + 3step, ... start + n*step]
string.format - как раз таки она вставляет значения в строку
os.system - выполняет команду в ос

код не тестил, но должно работать
PM MAIL   Вверх
shopmobit
Дата 4.12.2012, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 3.12.2012
Где: Пушкино

Репутация: нет
Всего: нет



Я не спец, но не подскажете кусок кода на питоне, чтоб выборку из базы делал в качестве перелистывания в зависимости от количества строк для вывода на одной страничке. Спасибо. Учусь, пока не супер:((
PM MAIL WWW ICQ Skype   Вверх
Photon
Дата 10.1.2013, 21:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: нет
Всего: 12



А нафига тут string.format? smile
Можно же так:

Код

cmd = 'wget "http://api.wikimapia.org/?function=box&key=62C89171-7A50DB4A-EBE5D474-888373FC-E8413EBA-60D2158E-1A84B7AB-FC15D681&bbox=%.2f,%.2f,%.2f,%.2f&count=50000&format=kml&pack=gzip"' % (i, j ,i + step, j + step)
system(cmd)



--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0890 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.