Быстрый в изучении - мощный в программировании
Скрипт ИНВЕСТОР на Python

Попробуйте себя в качестве инвестора имея в помощники мощный алгоритм советника на Python...

Все уроки по PyQt5

PyQt5 реализован как комплект Python-модулей. Он включает в себя около 620 классов и 6000 функций и методов...

Скрипт отправки SMS через Python

Была задача отправить SMS-ки большому списку номеров телефона с уточнением цены за всю рассылку "До" ее отправки...

Python скрипты

Наверное, многим разработчикам знакома ситуация, когда в проекте необходимо совершить определенные действия. Чтобы сделать это мы создаем специальный скрипт на питоне, кладем его в корень проекта и запускаем по необходимости. Таким образом со временем имеем захламленную корневую директорию проекта, чтобы избавится от этого решаем перекинуть все скрипты в отдельную папку и тут нас ждут проблемы.

Если мы указываем интерпретатору python новый путь, в котором содержится наша новая папка, то скрипты не сработают, так как не работают импорты пакетов, расположенные в корне проекта, поскольку в sys.path корня проекта нет. Есть несколько вариантов выхода из такой ситуации. Мы можем сделать маленькую утилиту для запуска скриптов, которая бы перед их стартом меняла sys.path и положить ее в корень. Можно и что-то другое сделать. Но, мне это уже надоело, зачем постоянно изобретать колесо, если можно один раз собрать велосипед и постоянно на нем кататься? Я так и сделал, создал runscript.

Библиотека легко устанавливается через pip:

 $ pip install runscript

В результате в вашей системе будет новая команда run, которая и будет запускать скрипты. Со стандартными настройками она будет искать скрипты в папке script каталога в котором вы находитесь на данный момент.

Разберем ее работу на простеньком примере. Делаем папку script. Создадим пустым файлик script/__init__.py, сделав данный каталог python-пакетом. Делаем еще один файлик script/preved.py, внутри пишем:

def main(**kwargs):
    print("Preved, medved!")

Теперь у нас есть скрипт, можно запускать:

$ run preved
Preved, medved!

Радуемся, скрипт заработал. Команда очень примитивная неправда ли? Она просто запускает наши скрипты. Казалось бы, какой в этом смысл, но, когда в каждом проекте вам нужно запускать простенькие скрипты, вы сами заметите, что постоянно будете ею пользоваться. Позже к этой утилите было добавлены полезные функции, сейчас поговорим о них.

Получение параметров через командную строку

Если вам необходимо, чтобы скрипт через командую строку получал определенные параметры, необходимо прописать их в setup_arg_parser в самом скрипте. На вход функция получит ArgumentParser, здесь вы указываете необходимые параметры. После вызова скрипта, значения параметров передаются функции main.

Вот простой пример:

def setup_arg_parser(parser):
    parser.add_argument("-w", "--who", default="medved")
 
def main(who, **kwargs):
    print("Preved, {}".format(who))

Попробуем запустить:

$ run preved
Preved, medved
 
$ run preved -w anti-medved
Preved, anti-medved

Активация Django

Пользуетесь фреймворком Django? Значит знаете, что для работы нужно кое-что сделать. А именно – создать environment переменной DJANGO_SETTING_MODULE, где указан путь к настройкам. Как правило, в скрипты питона вписывают:

import os
os.environ["DJANGO_SETTINGS_MODULE"] = "settings"

В Django 1.7 и старше добавляем еще и:

import django
django.setup()

Для автоматизации посредством команды run нам необходимо сделать в корне файлик с настройками – run.ini:

[global]
django_settings_module = settings
django_setup = yes

Где искать скрипты?

Дефолтно утилита будет искать скрип в пакетах script и grab.script. Чтобы изменить такие места в run.ini добавляем следующее:

[global]
search_path = package1.script,foo,bar

Таким образом, выполнив ту же команду «run preved» мы сделаем так, что утилита будет пытаться импортировать модуль preved в таком порядке:

• package1.script.preved
• foo.preved
• bar.preved

Это еще не все функции. Если у вас есть вопросы, можете изучить исходный код

github.com/lorien/runscript/blob/master/runscript/cli.py

Вам необходимо качественное сетевое оборудование? Нужен Cisco Catalyst 3850 на www.vtkt.ru можно его приобрести. У компании огромный выбор сетевого оборудования высокого качества. За годы работы он положительно себя зарекомендовала, выполнена масса ИТ проектов.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru yandex.ru
Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)