Уведомления

Группа в Telegram: @pythonsu

#1 Май 3, 2014 14:07:09

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

Что то у меня не получается, давайте я опишу, может подскажите в чем проблема:

План действий такой:

1. Соединяемся с сервером
2. Получаем от туда файл script1.pyc
3. Сохраняем (\res_mods\0.9.0\scripts\client\mods)

Если просто выполнить urllib.URLopener().retrieve('http://185.20.000.000/', ‘script1.pyc’), то он сохраняет в директории c:\\Games\Game1\, а нужно в c:\\Games\Game1\res_mods\0.9.0\scripts\client\mods

Я писал вот так:

urllib.URLopener().retrieve('http://185.20.000.000/script1.pyc', '\res_mods\0.9.0\scripts\client\mods')

Но не работает

Отредактировано BossBox (Май 3, 2014 14:08:17)

Офлайн

#2 Май 3, 2014 14:14:03

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

полный путь указывайте c:\\Games\Game1\res_mods\0.9.0\scripts\client\mods

или

import os
print os.getcwd()+'\\res_mods\0.9.0\scripts\client\mods'
import os
link = os.getcwd() + '\\res_mods\0.9.0\scripts\client\mods'
urllib.URLopener().retrieve('http://185.20.000.000/script1.pyc', link)
при условии что вы запускаете скрипт из c:\\Games\Game1\
а так то лучше полный путь указать

Отредактировано sanodin (Май 3, 2014 14:21:36)

Офлайн

#3 Май 3, 2014 14:22:00

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

Сейчас поробую спасибо.

Просто я пробовал тоже через os, но у меня какую ерунду выводило а не путь:

'c:\\Games\Game1\\res_mods\x00.9.0\\scripts\\client\\mods\\logs.txt'

Офлайн

#4 Май 3, 2014 14:25:31

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

Извините но не работает: не сохраняет файл, вывел через print путь, показывает вот такой:

'C:\\Games\\Games1\\res_mods\x00.9.0\\scripts\\client\\mods'

Офлайн

#5 Май 3, 2014 14:28:07

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

в конце укажите название файла

urllib.URLopener().retrieve('http://185.20.000.000/script1.pyc', 'c:\\Games\Game1\res_mods\0.9.0\scripts\client\mods\server.pyc')

Отредактировано sanodin (Май 3, 2014 14:30:56)

Офлайн

#6 Май 3, 2014 14:30:24

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

Аналогично все, папка пустая, нету файла

Офлайн

#7 Май 3, 2014 14:31:51

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

значит на сервере не находит скрипта, не скачивает
вы же раньше не так скачивали

urllib.URLopener().retrieve('http://185.20.000.000/', 'c:\\Games\Game1\res_mods\0.9.0\scripts\client\mods\server.pyc')

Отредактировано sanodin (Май 3, 2014 14:35:44)

Офлайн

#8 Май 3, 2014 14:45:29

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

А может можно по другому попробовать, например загрузить в корень где запускается, а после уже переместить другим способом в директорию \res_mods\0.9.0\scripts\client\mods\ и согласиться на замену.

Офлайн

#9 Май 3, 2014 14:47:49

sanodin
От:
Зарегистрирован: 2011-06-16
Сообщения: 515
Репутация: +  31  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

это и так делается автоматом

urllib.URLopener().retrieve('http://185.20.000.000/', 'c:\Games\Game1\res_mods\0.9.0\scripts\client\mods\server.pyc')
пройдите по пути указанном в скрипте и еще раз гляньте есть файл или нет

Отредактировано sanodin (Май 3, 2014 14:54:29)

Офлайн

#10 Май 3, 2014 14:54:51

BossBox
Зарегистрирован: 2014-02-23
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Подгрузить другой скрипт с сервера и выполнить внутри

Не знаю все равно не выходит, если просто вот так прописать:

import urllib
import os
urllib.URLopener().retrieve('http://185.20.000.000/', 'logs.txt')

То файл сохраняется в корень, туда от куда сrрипт первоначальный вызывается

Если выполнить вот так (попробовал с файлом *txt):

import urllib
import os
urllib.URLopener().retrieve('http://185.20.000.000/logs.txt', 'C:\Games\Game1\res_mods\0.9.0\scripts\client\mods\logs.txt')

То в папке его нету. Путь указан все правильно.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version