Архив рубрики: Python

Python is an interpreted, high-level, general-purpose programming language.

Python: скрипт инкрементального или полного бекапа файлов

14 октября 2014
 

 Создаёт копию всех данных в каталоге /var/www/vhosts/ по понедельникам, и «инкрементальный» бекап только файлов, изменившихся за последние 24 часа. Упаковывает и сжимает в архив tar.bz2. На каждый день создаётся отдельная директория, хранятся 4 полных бекапа и 7 — ежедневных. Для бекапа баз MySQL — второй скрипт: Python: скрипт бекапа баз данных MySQL/MariaDB.

Python: утилита для создания нового Apache VirtualHost + пользователь + база MySQL

14 сентября 2014
 

 Готовясь с переезду со старого сервера (FreeBSD) на новый (CentOS) — пришлось задуматься о том, сколько сайтов надо создавать вручную: добавить пользователя, создать директории, файлы логов, отредактировать файл конфигурации Apache HTTP. С целью упростить себе жизнь, а заодно — попрактиковаться в Python, задумался следующий скрипт. Предполагается, что Apache настроен с поддержкой suEXEC + mod_fcgid (CentOS:… Читать далее »

Python: зачем нужен if __name__ == «__main__» ?

12 сентября 2014
 

 Во многих модулях можно встретить конструкцию вида: if __name__ == «__main__»: func() Её основное назначение — разделение кода, который будет выполнятся при вызове кода как модуля (при импортировании его в другой скрипт) — и при запуске самого модуля, как отдельного файла. Возьмём такой пример. Скрипт 1: #!/usr/bin/env python print(‘Script 1. My name is: %s’ % __name__)… Читать далее »

Python: скрипт LogParcer

11 сентября 2014
 

 Задача скрипта — выполнять постоянную проверку лога приложения и, в случае обнаружения сообщений об ошибке подключения к базе данных, останавливать Tomcat. Т.к. после трёх неудачных попыток подключения аккаунт на Oracle-сервере блокируется — необходимо было жестко останавливать приложение до того, как аккаунт будет заблокирован. Для PROD-сервера — конечно, «убивать» приложение нельзя, поэтому — там скрипт только… Читать далее »

Ubuntu: установка PyCharm

8 сентября 2014
 

 Устанавливаем Java, если ещё не установлена: # add-apt-repository ppa:webupd8team/java Oracle Java (JDK) Installer (automatically downloads and installs Oracle JDK6 / JDK7 / JDK8). There are no actual Java files in this PPA. … OK # aptitude update # aptitude -y install oracle-java7-set-default По ходу установки — принимаем условия лицензии.

Python: модуль pysed — расширенный аналог редактора sed

28 августа 2014
 

 Страница проекта на PyPI. Там есть достаточно подробный HowTo с примерами, но мало показано применение модуля непосредственно в коде — больше в консоли. В Python есть строковый метод replace: Help on function replace in string: string.replace = replace(s, old, new, maxsplit=-1) replace (str, old, new[, maxsplit]) -> string Return a copy of string str with… Читать далее »

Python: работа с файлами

24 августа 2014
 

 Для работы с файлами в Python используется встроенная функция open(): Help on built-in function open in module __builtin__: open(…) open(name[, mode[, buffering]]) -> file object Open a file using the file() type, returns a file object. This is the preferred way to open a file. С помощью open() создаётся новый объект, над которым потом можно выполнять… Читать далее »

Python: ООП — наследование классов

21 августа 2014
 

 Наследование в ООП Понимание наследования в ООП и классах Python обязательно для понимания. Рассмотрим простые примеры наследования. Возьмём код из статьи Python: классы — краткий обзор: аргументы, методы и специальные методы, импорт классов: class thisIsClass: »’This is class documentation»’ # зададим два аргумента arg1 = ‘string’ arg2 = 100 # зададим два аргумента — changearg1, changearg2… Читать далее »

Python: установка и использование IPython

19 августа 2014
 

 IPython — интерактивная оболочка для языка программирования Python, которая предоставляет расширенную интроспекцию, дополнительный командный синтаксис, подсветку кода и автоматическое дополнение. Является компонентом пакета программ SciPy. (c) Wiki Установка через PIP: # pip install ipython Однако, на CentOS 6.5, в котором используется: # python -V Python 2.6.6 установка через pip невозможна, так как: ERROR: IPython requires Python version 2.7 or 3.3 or… Читать далее »

Python: классы — краткий обзор: аргументы, методы и специальные методы, импорт классов

18 августа 2014
 

 Структура класса class ClassName: ‘Optional class documentation string’ class_body Тут: class — объявление класса, аналогично def в функциях; ClassName — имя класса; так же может включать в скобках имя «родительского класса» (наследование классов); ‘Optional class documentation string’ — опционально, описание класса, доступна при вызове ClassName.__doc__; class_body — тело класса: методы и атрибуты класса. Атрибуты данных… Читать далее »