Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Аренда серверной стойки аренда стойки в цод.

Автоматизируем FTP с помощью Python


Сергей Супрунов

Любой системный администратор, если он в меру ленив, рано или поздно берется за автоматизацию своей работы. Сначала вместо длинных команд со множеством ключей появляются псевдонимы (aliases), потом группы команд объединяются в пакетные файлы командной оболочки, затем на арену выходят сценарии на более функциональных языках типа Perl… И все для того, чтобы сократить количество «кликов» и по возможности переложить часть работы на пользователей, которые эти операции и должны бы делать «по идее», но «по факту» научить их находить нужный файл в дереве каталогов, упаковывать его и отправлять по назначению оказывается на порядок сложнее, чем делать это самому.

Об использовании Python для выполнения тех или иных операций на UNIX-серверах написано достаточно много. В данной же статье я хочу показать применение этого языка для решения «бытовых» задач в среде Windows. В качестве примера (которым возможности Python никоим образом не ограничиваются) разработаем приложение, автоматизирующее отправку данных и получение обновлений по FTP, используя заранее настроенные пути и имена файлов.

Попытаемся сделать наше приложение максимально универсальным, однако будем иметь в виду конкретную цель – нужно организовать обмен данными с удаленной кассой (ежедневно сбрасывать на сервер файлы реестров и время от времени получать с сервера обновленную базу абонентов). Все задачи условно разделим на пользовательские (например, инициирование отправки) и администраторские (например, первичная настройка). Первые из них требуется разработать максимально удобно, предоставив простейший интерфейс и лишив пользователя возможности ошибаться. Задачи второй категории по традиции решим достаточно упрощенно – главное, чтобы все работало при минимуме телодвижений.

Первым делом скачаем с http://python.org дистрибутив Python для Windows. Его инсталляция никаких вопросов вызвать не должна. На момент написания статьи у меня была установлена версия Python 2.3.4. Входящая в состав пакета среда разработки IDLE (рис. 1) предоставляет некоторые удобства, но для меня как-то уже устоялся стиль разработки, когда код вбивается в обычный текстовый файл, и затем исполняется командой типа:

C:myworkspython est>python test.py

Можно, конечно, в командной строке набрать просто test.py – в процессе инсталляции в Windows расширение «.py» ассоциируется с интерпретатором python.exe, и подобная команда тоже выполнит код. Однако на стадии отладки это не совсем удобно – для потоков stdout и stderr в этом случае создается новое консольное окно, которое закрывается сразу же после завершения (в том числе и аварийного) работы сценария, не позволяя ознакомиться с сообщениями об ошибке.

Рисунок 1

Знакомство с Python

Подробно останавливаться на основах языка я не буду. Данный раздел имеет целью коротко пояснить, что и как, для тех, кто ранее с Python не сталкивался, но статью прочитать непременно хочет. И сразу, как говорится, – с места в карьер:

(0) # -*- coding: cp866 -*-

(1) #----------------------------- first.py

(2) import os

(3) def hello(message):

(4)        print message

(5)        print 'Вы находитесь в %s.' % os.getcwd()

(6)

(7) if __name__ == '__main__':

(8)        hello('Hello from Python.')

(9)        raw_input('Нажмите Enter...')

(a) else: pass

(b) #----------------------------end of first.py

Результат работы этого сценария будет следующим:

C:myworkspython est>python test.py

 


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100