Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Скрипт скачивания файла с интернета на Python (http://forum.oszone.net/showthread.php?t=247290)

n_i_x 20-11-2012 09:42 2028767

Скрипт скачивания файла с интернета на Python
 
Доброго времени суток. Скрипт на Python, который скачивает лечащую утилиту от др.веб. Не могу понять почему при проверке выдаёт ошибку синтаксиса.

P.S. Python обновил до 3.3.0

Код:

import ftplib
import time
import shutil
import os

def handleDownload(block):
        global downloaded
        dwn_file.write(block)
        downloaded = downloaded + len(block)
        progress = float(downloaded) / size * 100
        print '\rDownloading file... | %.2f Mb | %.1f %%' % (downloaded/1024.0/1024, progress),

server = 'ftp.drweb.com'
dir_to_copy = r'\\tools\DrWeb'
try:
        ftp = ftplib.FTP(server)
        ftp.login()
        print 'Connected to FTP', server
except:
        print 'Failed to connect to FTP', server
        print 'Exit from script!'
        exit()
ftp.cwd('pub/drweb/cureit')
file_list = ftp.nlst()
ident_part = time.strftime('%Y', time.localtime())
filter_list = [i for i in file_list if i[-4:] != '.exe' and i.find(ident_part) == 0]
filter_list.sort(reverse=True)
foldername = filter_list[0]
ftp.cwd(foldername)
file_list = ftp.nlst()
filename = file_list[0]
size = ftp.size(filename)
downloaded = 0
try:
        print 'Filename:', filename
        print 'Filesize: %.2f Mb' % (size/1024.0/1024)
        print 'Starting download:', time.strftime('%H:%M:%S', time.localtime())
        dwn_file = open(filename, 'wb')
        ftp.retrbinary('RETR ' + filename, handleDownload)
        print 'Download complete: ', time.strftime('%H:%M:%S', time.localtime())
        dwn_file.close()
        time.sleep(2)
        new_name = '\CureIt-' + foldername[:8] + '.exe'
        shutil.move(os.path.abspath(filename), dir_to_copy + new_name)
except:
        print 'Error download file...'
ftp.quit()


lxa85 20-11-2012 15:04 2028945

функция печати имеет вид -> print ('какой то текст')
Обратить внимание на скобки.
Дома могу попробовать посмотреть скрипт в действии.
---
Upd:
Проверил дома, все работает. (На работе прокси-сервер)
Т.ч. только конструкцию надо print поправить.

n_i_x 21-11-2012 14:40 2029642

большое спасибо!

а что такой срипт через прокси не будет работать?

lxa85 21-11-2012 16:12 2029701

n_i_x, неа. Ты переменным server указываешь прямой адрес. Я нашел несколько адресов раз два три
В которых есть примеры работы с прокси. Единственное что, они на английском и смотрел я их поверхностно.
Т.е. посидеть, поковырять денек и все должно получиться.
Чтобы легче было ловить ошибки, возьми среду разработки.
Свободная и достаточным функционалом: PyScripter.
В ней вполне можно заниматься отладкой. (Я пару-тройку недель только изучаю питон. Час назад получил первый базово-рабочий скрипт на 200 строк.)


Время: 19:19.

Время: 19:19.
© OSzone.net 2001-