Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
if __name__ == '__main__': print 'Только как модуль.'
В основе данного сценария лежит стандартный модуль zipfile. Он предоставляет довольно развитые средства для работы с архивами, но его непосредственное использование потребует каждый раз писать один и тот же код обвязки. Поэтому мы и создаем собственный модуль, в котором опишем нужные нам функции на более высоком уровне.
Класс ZipFile модуля zipfile позволяет работать с архивом, почти как с обычным файлом – читать из него, записывать и т. д. Фигурирующий здесь параметр ZIP_DEFLATED определяет метод компрессии.
В дальнейшем нам понадобятся отсюда: функция read-allzip, которая будет извлекать в текущую папку все файлы из скачанного архива, и writepattzip, которая будет упаковывать в архив все файлы из текущего каталога. Функции соответствуют шаблону.
Из интересного отметим здесь, что шаблоны передаются в виде кортежа, то есть этот параметр должен выглядеть примерно так: «(‘*.db’, ‘*.px’)». Также обратите внимание на синтаксис цикла «for»: он перебирает все значения из списка, заданного после ключевого слова «in».
Модуль работы с FTP myftp
Аналогично в отдельный файл вынесем и функции работы по протоколу FTP. Здесь нам требуется две функции – отправка одного файла по заданному пути и чтение одного файла. Возможность загрузки или отправки сразу нескольких файлов реализовывать не будем: поскольку в основе нашего приложения будет лежать работа с архивами, то целесообразно упаковывать все передаваемое или принимаемое в один файл. Код модуля представлен ниже:
# -*- coding: cp866 -*-
#--------------------------------------------------------
#
# myftp.py: модуль работы с FTP
#
#--------------------------------------------------------
# Импорт нужных функций
import os
from ftplib import FTP
from myzip import *
VERBOSE = 1
# Скачивание файла по FTP:
# передаются следующие параметры:
# fromdir – папка-источник на FTP-сервере
# file – имя скачиваемого файла
# (fromsite, ftpuser, ftppassword) – FTP-сервер и логин/пароль для входа
# todir – локальная папка для сохранения скачанного файла
#
def getftp(fromdir, file, (fromsite, ftpuser, ftppassword), todir):
olddir = os.getcwd() # запоминается текущий каталог
os.chdir(todir) # переход в папку назначения
if VERBOSE: