В последнее время я очень много пишу на Python: начиная с больших систем типа облаков на работе и заканчивая маленькими скриптами дома. И одновременно с этим я стал за собой замечать, что многие вещи, которые я раньше писал на shell, мне гораздо приятнее писать на Python. Вот только когда пишешь какие-нибудь административные утилиты, зачастую возникает необходимость запускать из них другие программы, в результате чего приходится городить свои обвязки вокруг subprocess, который, на мой взгляд, не очень удобен.
Все свои скрипты и программы я всегда пишу со здравым уровнем паранои, поэтому каждый раз, когда вижу конструкции вида `grep word some_file | wc -l`, мне всегда хочется не только получить вывод `wc -l`, но и проверить, завершился ли нормально grep (вдруг он, к примеру, не смог открыть файл). Делать это каждый раз вручную в shell быстро надоест, а в Python есть исключения, которые как раз могут тут очень помочь.
В общем, захотел я себе максимально удобную запускалку процессов для Python. :) Посмотрев на то, что уже написано, сначала остановил свой выбор на sh, но, глянув внутрь нее и посмотрев, как оно на самом деле работает, я понял..., что этим я пользоваться не буду. :) В итоге решил написать такую библиотеку сам, благо не так уж много времени на это надо, да и напишу так, как будет наиболее удобно для меня. :)
С Linux так всегда - сколько не копай вглубь и вширь, всегда найдется что-то новое...
Показаны сообщения с ярлыком python. Показать все сообщения
Показаны сообщения с ярлыком python. Показать все сообщения
понедельник, 22 октября 2012 г.
вторник, 19 августа 2008 г.
PyVSB - простая в использовании система бэкапа данных
Меня давно привлекал язык программирования Python - по-моему все мнения о нем, которые мне доводилось слышать, были исключительно положительными, да и в последнее время при работе в Linux я стал замечать, что все больше и больше программ, которыми я пользуюсь, написаны на Python'е. Прочитав Python tutorial и просмотрев Python Library Reference, я понял, что совершенно не зря он стал так популярен в последнее время - это просто замечательный язык, который отлично подойдет как web-разработчику так и разработчику настольных программ, особенно если скорость написания программы для него имеет решающее значение.
После прочтения документации к Python, я стал думать, как бы мне закрепить полученные знания на практике. Идеальным вариантом было бы написание относительно небольшой программы, которая использует как можно больше возможностей библиотеки Python, и которая пригодилась бы мне впоследствии, чтобы не "писать программу, ради написания программы". Попытавшись вспомнить, каких программ мне не хватает, я пришел в тупик - оказалось, что в Linux я нашел для себя все, что мне было необходимо. Однако, я вспомнил, что уже довольно давно для бэкапа использую самописные скрипты, которые хоть и сжимают сохраненные данные, но не обеспечивают инкрементального бэкапа. Поставить какую-нибудь bacula и читать целый том документации к ней мне не хотелось - для "домашнего" бэкапа ее возможности совершенно не нужны. До поиска каких-нибудь более простых систем бэкапа у меня как-то не доходили руки.
Тут то я и нашел, на чем мне можно получить практический опыт программирования на Python - нужно написать относительно простую систему для "домашнего" бэкапа, которая будет иметь только необходимые функции и минимум настроек в конфигурационном файле.
Необходимые для меня функции - это:
Вот что у меня получилось (взято из Readme файла к программе):
После прочтения документации к Python, я стал думать, как бы мне закрепить полученные знания на практике. Идеальным вариантом было бы написание относительно небольшой программы, которая использует как можно больше возможностей библиотеки Python, и которая пригодилась бы мне впоследствии, чтобы не "писать программу, ради написания программы". Попытавшись вспомнить, каких программ мне не хватает, я пришел в тупик - оказалось, что в Linux я нашел для себя все, что мне было необходимо. Однако, я вспомнил, что уже довольно давно для бэкапа использую самописные скрипты, которые хоть и сжимают сохраненные данные, но не обеспечивают инкрементального бэкапа. Поставить какую-нибудь bacula и читать целый том документации к ней мне не хотелось - для "домашнего" бэкапа ее возможности совершенно не нужны. До поиска каких-нибудь более простых систем бэкапа у меня как-то не доходили руки.
Тут то я и нашел, на чем мне можно получить практический опыт программирования на Python - нужно написать относительно простую систему для "домашнего" бэкапа, которая будет иметь только необходимые функции и минимум настроек в конфигурационном файле.
Необходимые для меня функции - это:
- Инкрементальный бэкап
- Сжатие сохраняемых данных
- Отправка уведомлений на email
- Возможность запуска собственных скриптов до и после бэкапа
- Фильтрация файлов, подлежащих резервному копированию, по регулярным выражениям
Вот что у меня получилось (взято из Readme файла к программе):
Posted by
Dmitry Konishchev
7
comments
Tags:
резервное копирование,
backup,
linux,
python,
pyvsb
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest
суббота, 26 июля 2008 г.
Очередной HowTo по Vim
Ранее я уже выкладывал небольшой HowTo по Vim. Тогда я только начинал свое знакомство с ним и решил, что на начальном этапе изучения лучше руководствоваться различными tutorial'ами и HowTo, а официальную документацию пока оставить в стороне. Почему? А потому, что если вы только начинаете изучать Vim, то вы еще не знаете, что вам от него нужно - необходим определенный опыт работы, чтобы при чтении документации вы смогли бы наиболее точно оценить, какие функции будут вам полезны, а о каких можно забыть. Все команды вы все равно не запомните - уж слишком их много, поэтому приходится отсеивать только те, которыми вы действительно будете пользоваться.
Поработав в Vim достаточное количество времени, чтобы понять, что мне от него нужно, я наконец-то принялся за чтение документации. Просто так ее читать бесполезно - все не запомнишь, поэтому в процессе чтения я выписывал те сочетания клавиш, которые считал для себя полезными. Конечно, даже после этого список получился довольно большой, но я его составлял не для того чтобы потом сесть и зубрить. :) Нет, это вообщем-то и не нужно. Вполне достаточно внимательно прочитать его один раз, запомнив описываемые им возможности, чтобы в последствии, когда вы в очередной раз поймаете себя на выполнении повторяющихся действий, от вас потребовалось бы только заглянуть в этот список команд и подумать, как можно сделать то же самое одной комбинацией клавиш.
Подобные HowTo просто подарок судьбы для начинающих пользователей Vim'a, т. к., прочитав их и скопипастив строчки из чужих конфигов в свои, они уже смогут работать в нем, не испытывая при этом особого дискомфорта. Данный HowTo предполагает, что вы уже знаете Vim в объеме Vim Tutor. Опытные пользователи, которые не смогли найти время для прочтения документации, также, возможно, найдут что-то полезное для себя в этой статье - я, например, к своему стыду, о командах gj и gk узнал именно из документации, но сколько же я без них мучился... :)
Поработав в Vim достаточное количество времени, чтобы понять, что мне от него нужно, я наконец-то принялся за чтение документации. Просто так ее читать бесполезно - все не запомнишь, поэтому в процессе чтения я выписывал те сочетания клавиш, которые считал для себя полезными. Конечно, даже после этого список получился довольно большой, но я его составлял не для того чтобы потом сесть и зубрить. :) Нет, это вообщем-то и не нужно. Вполне достаточно внимательно прочитать его один раз, запомнив описываемые им возможности, чтобы в последствии, когда вы в очередной раз поймаете себя на выполнении повторяющихся действий, от вас потребовалось бы только заглянуть в этот список команд и подумать, как можно сделать то же самое одной комбинацией клавиш.
Подобные HowTo просто подарок судьбы для начинающих пользователей Vim'a, т. к., прочитав их и скопипастив строчки из чужих конфигов в свои, они уже смогут работать в нем, не испытывая при этом особого дискомфорта. Данный HowTo предполагает, что вы уже знаете Vim в объеме Vim Tutor. Опытные пользователи, которые не смогли найти время для прочтения документации, также, возможно, найдут что-то полезное для себя в этой статье - я, например, к своему стыду, о командах gj и gk узнал именно из документации, но сколько же я без них мучился... :)
Posted by
Dmitry Konishchev
50
comments
Tags:
горячие клавиши,
русская раскладка,
hotkeys,
howto,
ide,
linux,
python,
vim
Отправить по электронной почтеНаписать об этом в блогеПоделиться в XОпубликовать в FacebookПоделиться в Pinterest
Подписаться на:
Сообщения (Atom)