Полезные библиотеки: RPC и nameko

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

Берем 2 компьютера, а дальше... А дальше нам надо как-то из программы на одном компьютере запустить метод на другом, да еще и данные перекинуть. Вот здесь на помощь и ...

more ...

Извлечение информации: XPath - язык для парсинга

XPath (XML Path Language) — язык запросов к элементам XML-документа. Но не спешите убегать, концепция XPath настолько получилась удачной что ее применяют при парсинге HTML

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

more ...

Python на службе народа: сохраняем список словарей в csv файл

При автоматизации процессов необходимо загружать/выгружать данные. Эти процессы напрямую завязаны на данные и их представление. Одно из самых простых представлений - это csv (Comma-Separated Value) таблицы.

Это обычные текстовые файлы с определенным форматом записей - колонки разделены запятыми, а каждая новая строка - это строка в таблицы

1997,Ford,E350,"ac, abs, moon",3000.00
1999,Chevy,"Venture ""Extended Edition""","",4900.00 ...
more ...

Синтаксис Python: type, isinstance - определяем тип переменной

С помощью функции type() можно проверить, принадлежит ли данное тому или иному типу:

>>> a = 10
>>> b = [1,2,3]
>>> type(a) == int
True
>>> type(b) == list
True
>>> type(a) == float
False

То же самое можно сделать с помощью функции isinstance():

>>> isinstance(a,int)
True
>>> isinstance(b,list)
True
>>> isinstance(b,tuple)
False
>>> c = (4,5,6)
>>> isinstance(c,tuple)
True ...
more ...

Таинство стандартной библиотеки: консольный GUI с помощью curses

Python отлично подходит для написания самых различных серверных утилит. Часто такие утилиты дополняют CLI (Command Line Interface), а иногда и целым GUI.

Но как его сделать? На сервере часто нет X сервера. нет Qt и чего-то такого, а Python есть. Возможно вы слышали про ncurses - библиотека для управления IO. Вот ее и можно использовать для такой задачи - стандартная библиотека содержит ...

more ...

API всему голова: twitter API - пишем твит с изображением

О Twitter нечего писать, проект уже взрослый и известный. Через Твиттер продают, покупают, разыгрывают призы, консультируют, оказывают поддержку проектов, да даже используют как сервис оповещений. Twitter имеет открытый API, который сегодня и освоим. Мы научимся публиковать пост с изображением через Twitter API

Начинаем работу с API - получаем APP_ID

Как и с другими API, первый шаг - почитать документацию - https://dev.twitter ...

more ...

Синтаксис Python: менеджер контекста (with) - подборка интересных ссылок

Менеджеры контекста — это механизм стоящий за ключевым словом with.

Ключевое слово with появилось еще в Python 2.5 (через __future__). Такая конструкция пришла на смену концепту setup..try..except..finally

Если раньше писали

try:
    file = open('text.txt', 'r')
    file.read()
except ...

То сейчас

with open('text.txt', 'r') as fio:
    fio.read()

За этим изменением стоит много, но повторять ...

more ...

Практические задачи: Задача #002 - собрать данные о погоде в одном месте

Продолжаем предлагать различные задачи для практики. Кто заинтересуется решением этих задач, просим помогать друг-другу. Но при этом в течении недели не кидать ссылок на полностью готовое решение. А также, чтобы читать код было удобно - публикуйте его на https://gist.github.com/ или какой-то подобный сервис.

Описание задачи:

Каждый прогноз погоды врет по своему. Один источник хорошо предсказывает теплую погоду, другой ...

more ...

Синтаксис Python: strip, rstrip, lstrip

Не редко возникает задача убрать лишние пробелы с начала/конца строки. Например

a = 'Доброе утро, Иван'
message, name = a.split(',') 
print(name)
> ' Иван' # (лишний пробел сначала строки)

Что получить имя пользователя в чистом виде - хорошо бы убрать лишние символы (если они там есть). Лишними символами чаще всего являются - \r \n пробелы - и все это в большом количестве Для этого в ...

more ...