как создать скрипт на python

Пишем shell скрипты на Python и можно ли заменить им Bash

В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

Элементарно правда? Интуитивно понятный синтаксис. 🙂

Тем не менее в python эти конструкции намного проще. Каждый раз когда я пишу что то на баше, то непременно лезу в поисковик чтобы вспомнить как писать простой if, switch или что-то еще. Присвоение я уже запомнил. 🙂 В Python все иначе. Я хоть и не пишу на нем круглые сутки, но никогда не приходилось лезть и смотреть как там сделать простой цикл, потому что синтаксис языка простой и интуитивный. Плюс ко всему он намного ближе к остальным мейнстримовым языкам типа java или c++, чем Bash/Sh.

Также в стандартной и прочих библиотеках Python есть намного более удобные библиотеки чем консольные утилиты. Скажем, вы хотите распарсить json, xml, yaml. Знаете какой я недавно видел код в баше чтобы сделать это? Правильно:

И это был не мой код. Это был код баше/питоно нейтрального человека.

То же самое с регексом, sed бесспорно удобная утилита, но как много людей помнит как правильно ее использовать? Ну кроме Lee E. McMahon, который ее создал. Да впринципе многие помнят, даже я помню как делать простые вещи. Но, на мой взгляд, в Python модуль re намного удобнее.

В этой небольшой статье я хотел бы представить вам диалект Python который называется shellpy и служит для того, чтобы насколько это возможно заменить Bash на python в скриптах.

Введение

Shell python ничем не отличается от простого Python кроме одной детали. Выражения внутри grave accent символов ( ` ) в отличие от Python не является eval, а обозначает выполнение команды в шелле. Например

и это тоже будет корректным синтаксисом.

Можно выполнять сразу несколько команд на разных строках

и команды, занимающие несколько строк

Выполнение каждого выражения в shellpy возвращается объект класса Result

Это можно быть либо Result либо InteractiveResult (Ссылки на гитхаб с документацией, можно и потом посмотреть 🙂 ). Давайте начнем с простого результата. Из него можно легко получить код возврата выполненной команды

И текст из stdout и stderr

Можно также пробежаться по всем строкам stdout выполненной команды в цикле

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

Или же более простым способом получить текст из stdout

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

Это ж не валидный синтаксис Python получается, как все работает то?

Магия конечно, как еще 🙂 Да, друзья мои, мне пришлось использовать препроцессинг, каюсь, но другого способа я не нашел. Я видел другие библиотеки, которые делают нечто подобное, не нарушая синтаксиса языка вроде

Но меня такой синтаксис не устраивал, поскольку даже несмотря на сложности, хотелось получить best user experience ©, а для меня это значит насколько это возможно простое и близкое к его величеству Шеллу написание команд.

Знакомый с темой читатель спросит, чем IPython то тебя не устроил, там ж почти как у тебя только значок другой ставить надо, может ты просто велосипедист, которому лень заглянуть в поисковик? И правда он выглядит вот так:

Я его пытался использовать но встретил пару серьезных проблем, с которыми ужиться не смог. Самая главная из них, то что нет простого импорта как в Python. То есть ты не можешь написать какой-то код на самом ipython и легко его переиспользовать в других местах. Невозможно написать для своего ipython модуля

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

В shellpy код переиспользуется легко и импортируется точно так же как и в обычном python. Предположим у нас есть модуль common в котором мы храним очень полезный код. Заглянем в директорию с этим модулем

Мы видим что тут объявлена функция, которая внутри себя использует shellpy синтаксис чтобы вернуть результат выполнения `echo 5. Как этот модуль используется в коде? А вот как

Видите? Как в обычном Python, просто взяли и заимпортировали.

Как же все работает. Это работает с помощью PEP 0302 — New Import Hooks. Когда вы импортируете что-то в своем коде то вначале Python спрашивает у хука, нет ли тут чего-то твоего, хук просматривает PYTHONPATH на наличие файлов *.spy или модулей shellpython. Если ничего нет, то так и говорит: «Ничего нету, импортируй сам». Если же он находит что-то там, то хук занимается импортом самостоятельно. А именно, он делает препроцессинг файла в обычный python и складывает все это добро в temp директорию операционной системы. Записав новый Python файл или модуль он добавляет его в PYTHONPATH и за дело берется уже самый обыкновенный импорт.

Давайте же скорее посмотрим на какой-нибудь пример

Этот скрипт скачивает аватар юзера Python с Github и кладет его в temp директорию

Установка

Запустим же что-нибудь

После установки можно потестировать shellpython на примерах, которые доступны прямо в репозитории.

Также здесь есть allinone примеры, которые называются так, потому что тестируют все-все функции, которые есть в shellpy. Загляните туда, чтобы лучше узнать что же там еще такого есть, либо просто выполните

Для третьего Python команда выглядит вот так

Совместимость

Если найдете проблемы — пишите в коммент, либо сюда как создать скрипт на python. shellpy. как создать скрипт на python фото. как создать скрипт на python-shellpy. картинка как создать скрипт на python. картинка shellpy. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if? либо телеграфируйте как-нибудь 🙂

Документация (на английском)

Можно ли законтрибьютить

Оно мне ничего в продакшене не разломает?

Сейчас версия 0.4.0, это не стейбл и продакшн процессы пока лучше не завязывать на скрипт, подождав пока все отладится. Но в девелопменте, CI можно использовать вполне. Все это покрыто тестами и работает 🙂 как создать скрипт на python. shellpy. как создать скрипт на python фото. как создать скрипт на python-shellpy. картинка как создать скрипт на python. картинка shellpy. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

Источник

Разработка надёжных Python-скриптов

Python — это язык программирования, который отлично подходит для разработки самостоятельных скриптов. Для того чтобы добиться с помощью подобного скрипта желаемого результата, нужно написать несколько десятков или сотен строк кода. А после того, как дело сделано, можно просто забыть о написанном коде и перейти к решению следующей задачи.

Если, скажем, через полгода после того, как был написан некий «одноразовый» скрипт, кто-то спросит его автора о том, почему этот скрипт даёт сбои, об этом может не знать и автор скрипта. Происходит подобное из-за того, что к такому скрипту не была написана документация, из-за использования параметров, жёстко заданных в коде, из-за того, что скрипт ничего не логирует в ходе работы, и из-за отсутствия тестов, которые позволили бы быстро понять причину проблемы.

как создать скрипт на python. bwsc8np51ystvqsvlchcn ukvwi. как создать скрипт на python фото. как создать скрипт на python-bwsc8np51ystvqsvlchcn ukvwi. картинка как создать скрипт на python. картинка bwsc8np51ystvqsvlchcn ukvwi. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

При этом надо отметить, что превратить скрипт, написанный на скорую руку, в нечто гораздо более качественное, не так уж и сложно. А именно, такой скрипт довольно легко превратить в надёжный и понятный код, которым удобно пользоваться, в код, который просто поддерживать как его автору, так и другим программистам.

Исходный код

Вот исходный код Python-скрипта, который позволяет решить задачу:

Поговорим о том, как его улучшить.

Документация

Я считаю, что полезно писать документацию до написания кода. Это упрощает работу и помогает не затягивать создание документации до бесконечности. Документацию к скрипту можно поместить в его верхнюю часть. Например, она может выглядеть так:

В первой строке даётся краткое описание цели скрипта. В оставшихся абзацах содержатся дополнительные сведения о том, что именно делает скрипт.

Аргументы командной строки

Следующей задачей по улучшению скрипта станет замена значений, жёстко заданных в коде, на документированные значения, передаваемые скрипту через аргументы командной строки. Реализовать это можно с использованием модуля argparse. В нашем примере мы предлагаем пользователю указать диапазон чисел и указать значения для «fizz» и «buzz», используемые при проверке чисел из указанного диапазона.

Модуль argparse — это весьма мощный инструмент. Если вы с ним не знакомы — вам полезно будет просмотреть документацию по нему. Мне, в частности, нравятся его возможности по определению подкоманд и групп аргументов.

Логирование

Если оснастить скрипт возможностями по выводу некоей информации в ходе его выполнения — это окажется приятным дополнением к его функционалу. Для этой цели хорошо подходит модуль logging. Для начала опишем объект, реализующий логирование:

Добавим в код проекта следующую функцию для настройки логирования:

Основной код скрипта при этом изменится так:

Тесты

Модульные тесты — это полезнейшее средство для проверки того, ведёт ли себя приложения так, как нужно. В скриптах модульные тесты используют нечасто, но их включение в скрипты значительно улучшает надёжность кода. Преобразуем код, находящийся внутри цикла, в функцию, и опишем несколько интерактивных примеров её использования в её документации:

Проверить правильность работы функции можно с помощью pytest :

В случае возникновения ошибки pytest выведет сообщение, указывающее на расположение соответствующего кода и на суть проблемы:

Модульные тесты можно писать и в виде обычного кода. Представим, что нам нужно протестировать следующую функцию:

В конце скрипта добавим следующие модульные тесты, использующие возможности pytest по использованию параметризованных тестовых функций:

Если произойдёт ошибка — pytest даст полезные сведения о том, что случилось:

Итоги

Сделать Python-скрипты надёжнее можно, выполнив следующие четыре шага:

Вокруг этого материала развернулись интересные обсуждения — найти их можно здесь и здесь. Аудитория, как кажется, хорошо восприняла рекомендации по документации и по аргументам командной строки, а вот то, что касается логирования и тестов, показалось некоторым читателям «пальбой из пушки по воробьям». Вот материал, который был написан в ответ на данную статью.

Уважаемые читатели! Планируете ли вы применять рекомендации по написанию Python-скриптов, данные в этой публикации?

Источник

Скрипты Python против Bash

Поехали!

Чтобы сделать скрипт на языке Python исполняемым в консоли — нужно, чтобы первая строчка имела вид

где /usr/bin/python — адрес интерпретатора Python, установленного в вашей системе. Ну и, естественно, пользователь, запускающий скрипт, должен иметь права для его выполнения. Что характерно, это будет работать только в NIX-системах. В Windows скрипты автоматически становятся исполняемыми при установке соответствия между программой-интерпретатором и типом файлов .py.

В целом скрипты Python во многом похожи на скрипты Bash, однако, на мой взгляд, они куда изящнее. Рассмотрим основные функции, которые могут нам понадобиться:

listdir(path)
Возвращает список имен файлов и папок в папке с именем path.

mkdir(path)
Создает папку с именем path.

makedirs(path)
Работает аналогично функции mkdir(), но автоматически создает все необходимые промежуточные папки.

remove(path)
Удаляет файл с именем path.

rmdir(path)
Удаляет каталог с именем path.

removedirs(path)
Работает аналогично функции rmdir(), но автоматически удаляет все родительские пустые папки.

rename(src, dst)
Переименовывает файл или папку с именем src в dst.

open(filename, flag)
Открывает файл с именем filename. Flag нужен для определения режима доступа: «r» — чтение, «w» — запись, «a» — дописывание.

read(size)
Считывает из файла данные размером size и возвращает в виде строки. Если аргумент опущен, то считывается все содержимое файла.

readline()
Считывает из файла одну строку, включая символ перехода на новую строку («\n»).

readlines()
Считывает из файла все строки и возвращает их в виде списка.

write(string)
Записывает строку string в файл.

writelines(lines)
Записывает строки из списка lines в файл. Символ перехода на новую строку между ними не добавляется.

tell()
Возвращает текущее положение в файле в байтах от начала файла.

seek(offset, whence)
Изменяет положение на offset. Характер определения положения зависит от аргумента whence (по умолчанию 0):
1) 0 – новое положение отсчитывается от начала файла;
2) 1 – от конца файла;
3) 2 – от текущего положения в файле;

truncate(size)
Усекает файл до размера size.

close()
Закрытие файла. Запомните! Любое открытие файла должно сопровождаться последующим закрытием с помощью этого метода.

А теперь — к более частным случаям.

Каша в голове? Ничего, сейчас мы разберем все подробнее.

login = raw_input(«Enter your name: «)
Здесь login — переменная, в которую считывается после нажатия Enter введенная пользователем строка.
Теперь давайте откроем файл и запишем в него какую-нибудь информацию.

gogo = open («/home/username/helloworld»,»w»)
gogo.write(«Hello, world!»)
gogo.close()

Кстати, рекомендую проверить, перед тем, как исполнять вышенаписанное, не завалялся ли у вас какой-нибудь нужный файл по адресу /home/username/helloworld? А то ведь все в нем сотрет и ничего не оставит на месте преступления, кроме «Hello, world!».

Ну а теперь давайте поработаем напрямую с консолью. Лично я в одном фрагменте кода доставал из выдачи команды host domen.com адрес хоста своего провайдера. Сказано — сделано.

Ух ты, сколько всего… Ну, давайте разбираться. Построчно.

import os
import re
Подключаем стандартные библиотеки питона, чтобы все работало. os — библиотека для работы с системными вызовами и консолью. re — для работы с регулярными выражениями.

vid = os.popen («host l2tp.corbina.ru»)
Здесь мы как бы «вводим в консоль» команду host l2tp.corbina.ru, а то, что получилось, запихиваем в виде списка в переменную vid.

re_dns=re.compile(r»([\d]+)\.([\d]+)\.([\d]+)\.([\d]+)»)
Это, друзья мои, преобразование регулярного выражения. re_dns — это переменная, в которую записывается особый объект, полученный при помощи метода re.compile(). Сам синтаксис регулярного выражения я объяснять не буду, тем более что он простейший, скажу только — это самый простой вариант фильтра для IP-адресов.

for line in vid.readlines():
Здесь стартует цикл for. Думаю, вы уже заметили, что в языке Python синтаксис цикла for довольно сильно отличается от других языков. Здесь берется переменная line, в которую по очереди записываются строки из списка vid.readlines(). Закончатся строки в списке — закончится и цикл. Двоеточие в конце обозначает начало раздела операторов, которые происходят в цикле. Эти операторы должны отделяться табуляцией или несколькими пробелами. Как только мы написали все, что должно происходить в цикле — просто пишем очередной оператор с начала строки. Кстати, это также касается и условного оператора if, как видно ниже.

hst=re_dns.search(line)
А здесь мы применяем полученный ранее объект регулярного выражения к строке line, в результате чего в hst возвращается либо список подходящих под него строк, либо None в случае, если ничего не найдено.

host=hst.group(0)
Как я уже говорил, в переменную hst возвращается список подходящих под регулярное выражение строк. На самом деле, точнее говоря, возвращается не список, а кортеж элементов. А поскольку мы прервали цикл, как только нашли первую подходящую строку — она и запишется в первый (он же нулевой) элемент кортежа, который мы благополучно достаем и записываем в host.

print «Corbina host adress is «+host
А потом выводим этот айпишник в консоль. Оператор print выводит переданную ему строку в консоль, да еще и допускает конкатенацию строк простым сложением.

Ну, собственно, вот и все для начала. Попрошу особо не ругать и не пинать за рваность повествования, если есть какие-то нарекания — с радостью прислушаюсь и постараюсь исправить.

Источник

Запуск Python и python-скрипт на компьютере

Код, написанный на языке Python, может храниться в редакторе кода, IDE или файле. И он не будет работать, если не знать, как его правильно запускать.

В этом материале рассмотрим 7 способов запуска кода, написанного на Python. Они будут работать вне зависимости от операционной системы, среды Python или местоположения кода.

Где запускать Python-скрипты и как?

Python-код можно запустить одним из следующих способов:

Запуск Python-кода интерактивно

Для запуска интерактивной сессии нужно просто открыть терминал или командную строку и ввести python (или python3 в зависимости от версии). После нажатия Enter запустится интерактивный режим.

Вот как запустить интерактивный режим в разных ОС.

Интерактивный режим в Linux

Откройте терминал. Он должен выглядеть приблизительно вот так :

как создать скрипт на python. terminal linux python. как создать скрипт на python фото. как создать скрипт на python-terminal linux python. картинка как создать скрипт на python. картинка terminal linux python. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

После нажатия Enter будет запущен интерактивный режим Python.

Интерактивный режим в macOS

На устройствах с macOS все работает похожим образом. Изображение ниже демонстрирует интерактивный режим в этой ОС.

как создать скрипт на python. terminal macos zapusk python. как создать скрипт на python фото. как создать скрипт на python-terminal macos zapusk python. картинка как создать скрипт на python. картинка terminal macos zapusk python. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

Интерактивный режим в Windows

как создать скрипт на python. terminal windows zapusk python. как создать скрипт на python фото. как создать скрипт на python-terminal windows zapusk python. картинка как создать скрипт на python. картинка terminal windows zapusk python. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

Запуск Python-скриптов в интерактивном режиме

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

как создать скрипт на python. zapusk python skriptov v interaktivnom rezhime. как создать скрипт на python фото. как создать скрипт на python-zapusk python skriptov v interaktivnom rezhime. картинка как создать скрипт на python. картинка zapusk python skriptov v interaktivnom rezhime. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

Для выхода из интерактивного режима нужно написать следующее:

И нажать Enter. Вы вернетесь в терминал, из которого и начинали.

Есть и другие способы остановки работы с интерактивным режимом Python. В Linux нужно нажать Ctrl + D, а в Windows — Ctrl + Z + Enter.

Стоит отметить, что при использовании этого режима Python-скрипты не сохраняются в локальный файл.

Как выполняются Python-скрипты?

Отличный способ представить, что происходит при выполнении Python-скрипта, — использовать диаграмму ниже. Этот блок представляет собой скрипт (или функцию) Python, а каждый внутренний блок — строка кода.

При запуске скрипта интерпретатор Python проходит сверху вниз, выполняя каждую из них. Именно таким образом происходит выполнение кода.

Но и это еще не все.

Блок-схема выполнения кода интерпретатором

Это набор инструкций, которые приводят к финальному результату.

Иногда полезно изучать байткод. Если вы планируете стать опытным Python-программистом, то важно уметь понимать его для написания качественного кода.

Это также пригодится для принятия решений в процессе. Можно обратить внимание на отдельные факторы и понять, почему определенные функции/структуры данных работают быстрее остальных.

Как запускать Python-скрипты?

Для запуска Python-скрипта с помощью командной строки сначала нужно сохранить код в локальный файл.

Возьмем в качестве примера файл, который был сохранен как python_script.py. Сохранить его можно вот так:

Сохранить скрипт в текстовом редакторе достаточно легко. Процесс ничем не отличается от сохранения простого текстового файла.

Но если использовать командную строку, то здесь нужны дополнительные шаги. Во-первых, в самом терминале нужно перейти в директорию, где должен быть сохранен файл. Оказавшись в нужной папке, следует выполнить следующую команду (на linux):

После нажатия Enter откроется интерфейс командной строки, который выглядит приблизительно следующим образом:

как создать скрипт на python. interfejs komandnoj stroki. как создать скрипт на python фото. как создать скрипт на python-interfejs komandnoj stroki. картинка как создать скрипт на python. картинка interfejs komandnoj stroki. В этой небольшой статье речь пойдет о том, можно ли легко использовать Python для написания скриптов вместо Bash/Sh. Первый вопрос, который возникнет у читателя, пожалуй, а почему, собственно, не использовать Bash/Sh, которые специально были для этого созданы? Созданы они были достаточно давно и, на мой взгляд, имеют достаточно специфичный синтаксис, не сильно похожий на остальные языки, который достаточно сложно запомнить, если вы не администратор 50+ левела. Помните, ли вы навскидку как написать на нем простой if?

Теперь можно писать код и с легкостью сохранять его прямо в командной строке.

Как запускать скрипт в командной строке?

Источник

Как создать скрипт на python

Желание изучить питон было давно. Я много где слышал что он хорошо подходит для прототипов, скриптов и небольших приложений. Он отличается высокой скоростью разработки и низким порогом вхождения. Динамичность — непривычно, но решаемо.

И вот, написал первый скрипт. Он оптимизирует перемещение на «сегодня» просроченных задач в тудуисте. Перенос в приложении выполняется в 3 действия: выделить задачи с зажатым шифтом, пройти через пункты меню и нажать заветную кнопку: «перенести на сегодня». Это не всегда получается с одной попытки. Время для автоматизации!

Установка Python 3

Не нашел причин, чтобы начать знакомство не с 3 версией питона. И, так как в Mac OS X El Capitan, установлена версия 2.7, то рассмотрим простой способ установки Python 3.

Понадобится менеджер пакетов Homebrew. У кого нет — советую. Для его установки введем в терминале:

Теперь установим третий питон:

Получение пакета для работы с тудуистом

Следующий этап — установка библиотеки для работы с АПИ тудуиста. Воспользуемся менеджером пакетов pip3, который поставляется вместе с Python 3:

Напоминаю о командной оболочке Zsh, о которой я писал ранее. Подключив плагины brew и pip можно добавить автодополнение для команд и пакетов.

Среда разработки

Автодополнение, рефакторинг, отладка — все это помогает на любых стадиях изучения языка. Поэтому я воспользовался IDE от JetBrains — PyCharm CE. Это бесплатная версия, в которой есть все необходимое.

Стиль кода и именования

Планирутся отдельная статья. А пока — о стиле именования.

Имена функций, методов и переменных экземпляров классов должны состоять из маленьких букв, а слова разделяться символами подчеркивания:

Стиль mixedCase допускается в тех местах, где уже преобладает такой стиль, для сохранения обратной совместимости:

Для атрибутов и непубличных методов используется один символ подчёркивания перед именем:

Итерация и получение значений из коллекций

Библиотека todoist возвращает на запрос о просроченных задачах словарь или список. Возник вопрос: как работать с коллекциями?

Итерация оказалась похожа на foreach из C#:

Преобразование и работа с датой

Рассмотрим как парсить дату, находить дельту, добавлять значения и приводить к определенному строковому формату.

Разберем построчно код из моего скрипта:

Типы выполнения модуля с кодом

Часто, читая код на гитхабе, встречал конструкцию:

Выясним ее предназначение.

Например, модуль вызвали из файла foo.py :

Добавление атрибутов командной строки

Рассмотрим построчно, как задавать описание скрипта и определять аргументы:

Чтение и запись в файл конфигурации

Полученный токен хранится в конфигурационном файле. Рассмотрим код для доступа, чтения и записи значения:

Чтение и запись в файл конфигурации

Полученный токен хранится в конфигурационном файле. Рассмотрим код для доступа, чтения и записи значения:

Мне понравилось, как просто записать изменения в файл. В C# для этого надо открывать потоки, указывать дополнительную информацию, здесь это просто 2 строчки. Возьми это и запиши сюда, все.

Заключение

Знакомство с языком Python оставило приятное впечатление. Как минимум его стоит изучить на базовом уровне, чтобы автоматизировать происходящие вокруг вас процессы. Он также хорош для быстрого написания прототипа идеи, засевшей у вас в голове.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *