Хочу поделиться маленьким скриптиком на питоне, облегчающим мне жизнь. Код, конечно, не самый лучший, заготовки конфигов можно вынести в отдельные файлы и читать оттуда, то же самое можно сделать и с классами но мне было так удобнее. Так же можно логировать действия скрипта, но с этим вполне справляется перенаправление вывод скрипта в файл. Предполагается, что у вас настроены bind и apache, а также установлена утилита apg для генерации паролей.
Читать полностью »
Появилась у меня потребность запустить внешнюю программу из питона. Некоторое время порыскал в документации в поисках чего-нибудь, похожего на обратные кавычки, пока не наткнулся на модуль subprocess. Там даны следующие примеры, касающиеся, моего случая:
Замена обратных кавычек (output=`mycmd myarg`):
output = Popen(["mycmd", "myarg"], stdout=PIPE).communicate()[0]
Замена пайпов (output=`dmesg | grep hda`):
p1 = Popen(["dmesg"], stdout=PIPE) p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE) output = p2.communicate()[0]
Замена os.system() (sts = os.system(«mycmd» + » myarg»)), которая мне не подходила, потому что она не возвращает вывод программы, а передает его на стадартный вывод:
p = Popen("mycmd" + " myarg", shell=True)
sts = os.waitpid(p.pid, 0)
В общем, RTFM. Утром, в обед и вечером.
Связанные записи
Вдогонку к предыдущему посту. Если вы хотите, чтобы в вашем джаббер-клиенте состояние бота показывалось как онлайн, то это можно сделать с помощью небольшой функции-обработчика:
def presence_handler(conn, event):
from_jid = xmpp.protocol.JID(event.getFrom())
presence_type = event.getType()
if presence_type == 'subscribe':
conn.send(xmpp.Presence(to = from_jid, typ = 'subscribed', show = 'online'))
Связанные записи
Захотелось мне написать что-нибудь на питоне, чтобы иметь представление о языке. И задумал я изготовить джаббер-бота, который посредством гугла будет служить для переводческих целей. Собственно, далее следуют инструкции по написанию этого самого бота с использованием библиотеки xmpppy.


Свежие комментарии