Найти - Пользователи
Полная версия: Подгрузить другой скрипт с сервера и выполнить внутри
Начало » Python для новичков » Подгрузить другой скрипт с сервера и выполнить внутри
1 2 3 4 5 6 7
BossBox
Что то у меня не получается, давайте я опишу, может подскажите в чем проблема:

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

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')

Но не работает
sanodin
полный путь указывайте 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\
а так то лучше полный путь указать
BossBox
Сейчас поробую спасибо.

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

'c:\\Games\Game1\\res_mods\x00.9.0\\scripts\\client\\mods\\logs.txt'
BossBox
Извините но не работает: не сохраняет файл, вывел через print путь, показывает вот такой:

'C:\\Games\\Games1\\res_mods\x00.9.0\\scripts\\client\\mods'
sanodin
в конце укажите название файла
urllib.URLopener().retrieve('http://185.20.000.000/script1.pyc', 'c:\\Games\Game1\res_mods\0.9.0\scripts\client\mods\server.pyc')
BossBox
Аналогично все, папка пустая, нету файла
sanodin
значит на сервере не находит скрипта, не скачивает
вы же раньше не так скачивали
urllib.URLopener().retrieve('http://185.20.000.000/', 'c:\\Games\Game1\res_mods\0.9.0\scripts\client\mods\server.pyc')
BossBox
А может можно по другому попробовать, например загрузить в корень где запускается, а после уже переместить другим способом в директорию \res_mods\0.9.0\scripts\client\mods\ и согласиться на замену.
sanodin
это и так делается автоматом
urllib.URLopener().retrieve('http://185.20.000.000/', 'c:\Games\Game1\res_mods\0.9.0\scripts\client\mods\server.pyc')
пройдите по пути указанном в скрипте и еще раз гляньте есть файл или нет
BossBox
Не знаю все равно не выходит, если просто вот так прописать:

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')

То в папке его нету. Путь указан все правильно.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB