Уведомления

Группа в Telegram: @pythonsu

Уведомления

  • Found 3492 posts.

Центр помощи » python turtle » Апрель 15, 2015 13:15:49

Подскажите как зарисовать сектора в круге
Например вот так зарисовываются только линии
turtle.color('hot pink','lime')
turtle.begin_fill()
turtle.circle(100)
turtle.up()
turtle.left(90)
turtle.fd(100)
turtle.down()

for k, i in b.iteritems():


turtle.fd(100)
turtle.backward(100)
turtle.rt(360/sum(b.values())*i)
turtle.end_fill()
а мне нужно чтоб именно сектора были разного цвета

Python для новичков » Сохранить файл, пришедший из js » Апрель 14, 2015 11:03:03

Доброго времени суток. Прошу помощи, так как уже не знаю в какую сторону копать. Есть у меня сервер на питоне. Заготовку взял где-то в интернете, потом допиливал под свои нужды. Возвращать файлы с сервера у меня получатся. Но вот встала нужда сохранять файлы на сервер. Пользователь выбирает файл и потом я этот файл пытаюсь передать с помощью js на сервер, а там его сохранить. Файл бинарный. Что я пробовал:

1) js'ом получать файл как base64, а питоном его конвертировать обратно и сохранять
2) js'ом получать файл как байты, а потом питоном сохранять
3) js'ом каждый байт кодировал в hex, а потом питоном расшифоровывал обратно и сохранял
4) чего-то там еще )

подскажите, пожалуйста, человеческий работающий способ. Заранее благодарю

Python для новичков » Помогите распарсить Дерево ...  » Апрель 13, 2015 02:39:16

Категория 1
под категория 1
и т.п

как пройти по всем категориям сайта

Python для новичков » Как создавать цыклы » Апрель 13, 2015 01:28:13

Как сделать цыкл который будет переходить по всем Категориям например

Категория1:
потом под категория
потом еще под категория
и под категория под ктегории

а далее переходил к след. категории2

вот мой код который копирует ссылку Категории
for elem in g.doc.select("//a[@class='mainHitsSection catalogLvl2ItemHd']"):
print "Категория: " + elem.attr("href")

а мне нужно чтобы он еще и заходил в под категории и копировал все href атрибуты и так далее

Центр помощи » как решить задачу text mining » Апрель 10, 2015 22:27:32

Ищу программиста по питону. Нужно решить одну задачку по семантике) Кто знает NLP , пишите, будем договариваться

Python для новичков » TCP-Client + redis (twisted) » Апрель 7, 2015 18:52:38

Добрый день, пишу скрипт, который слушал бы канал redis и выдавал приходящие сообщения на сервер. Вот, что получилось:
from twisted.internet import protocol, reactor
import time
import threading
import redis
host = 'localhost'
port = 9879
class ListenRedis(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        print("Init redis")
        self.redis = redis.Redis()
        self.pubsub = self.redis.pubsub()
        self.pubsub.subscribe("test_sub")
        self.runing = True
        
    def run(self):
        for item in self.pubsub.listen():
            self.work(item)
                
    def work(self, item):
        if item["type"] != "message":
            return
            
        print(item)
        factory.send_data(item["data"])
class Twist_client(protocol.Protocol):
            
    def dataReceived(self, data):
        print (data.decode())
        
        if data.decode() == "OK":
            print("Server say say OK")
        
class Twist_Factory(protocol.ClientFactory):
    protocol = Twist_client
    client = Twist_client()
    
    def clientConnectionFailed(self, connector, reason):
        print( '1connection failed:', reason.getErrorMessage())
        time.sleep(2)
        connector.connect()
    def buildProtocol(self, addr):
        print ('Connected.')
        return Twist_client()        
    def clientConnectionLost(self, connector, reason):
        print( '2connection lost:', reason.getErrorMessage())
        time.sleep(2)
        connector.connect()
        
    def send_data(self, data):
        re.transport.write(data)
        
print("Start")
lis = ListenRedis()
lis.start()
        
factory = Twist_Factory()
re = reactor.connectTCP(host, port, factory)
reactor.run()

Более менее все работает, но есть некоторые особенности в работе с сервером:
при подключении к серверу мы должны дождаться от него ответа - сообщение “READY”
и после каждого отправленного сообщения должны дожидаться ответа “OK”
Подобный пример для работы с tcp клиентом взял из-за того, что тут есть событие потери связи с трекеров, но никак не могу разобраться с тем, чтобы после отправки сообщения на сервер ждать ответа.
Подскажите, как это можно реализовать и стоит ли вообще в таком случае использовать twisted?

Python для экспертов » Потокобезопасность при чтении » Апрель 6, 2015 18:48:23

Доброго времени суток.
Есть некий контейнер в который сохраняются объекты по id, предположим {}

t={}

Есть 50 потоков (Threads) которые читают, не важно, одинаковые или разные id.
Есть 5 конкурирующих потоков с локом которые пишут новые id в контейнер.

t ['ABC' ]={'test_value1':1,'test_value2':2}

Безопасно ли остальным 50 потокам выполнять во время лока чтение? Я так полагаю что нет.
Как в таком случае быть? Вариант принудительным ожиданием и проверкой лока ( if not lock.locked() ) в каждом из потоков попахивает костылем.

Пишу на 2.7, фреймворк Tornado

Python для новичков » Помогите извлечь отдельные части текста и заменить html-теги на свои » Апрель 6, 2015 02:49:22

Дано, пишу парсер на grab:

Текст в html-коде страницы:

<div class=“inner” id=“msg_3218830”><div class=“quoteheader”><div class=“topslice_quote”><a href="http://www.forum.ru/forum/index.php/topic,129548.msg3218815.html#msg3218815“>Цитата: Nikitos_B от <strong>Сегодня</strong> в 01:04:06</a></div></div><blockquote class=”bbc_standard_quote“>Сразу скажу-в микроконтроллерах не силен <img src=”http://www.forum/forum/Smileys/kolobok/angry.gif“ alt=”&gt;&#58;&#40;“ title=”Angry“ class=”smiley“ /><br />&nbsp;И нужно ли, главное? <img src=”http://www.astronomy.ru/forum/Smileys/kolobok/smiley.gif“ alt=”&#58;&#41;“ title=”Smiley“ class=”smiley“ /><br /></blockquote><div class=”quotefooter“><div class=”botslice_quote“></div></div>Не нужно.</div>

1. Нужно извлечь отдельно <blockquote class=”bbc_standard_quote“>Сразу скажу-в микроконтроллерах не силен <img src=”http://www.forum.ru/forum/Smileys/kolobok/angry.gif“ alt=”&gt;&#58;&#40;“ title=”Angry“ class=”smiley“ /><br />&nbsp;И нужно ли, главное? <img src=”http://www.forum.ru/forum/Smileys/kolobok/smiley.gif“ alt=”&#58;&#41;“ title=”Smiley“ class=”smiley“ /><br /></blockquote>

2. И отдельно извлечь: </div>Не нужно.</div>

3. Лишний код удалить и произвести замену кода в извлеченных частях:
<blockquote class=”bbc_standard_quote“> на quote
</blockquote> на /quote
<img src=” на img
“ alt=” на /img

4. В итоге должно получится так:
quoteСразу скажу-в микроконтроллерах не силен
imghttp://www.forum.ru/forum/Smileys/kolobok/angry.gif/imgИ нужно ли, главное? imghttp://www.forum.ru/forum/Smileys/kolobok/smiley.gif/img/quote
Не нужно.

Подскажите пожалуйста, как это сделать грамотно, потому что у меня пока получается только так:

“Сразу скажу-в микроконтроллерах не силенИ нужно ли, главное?”

Тобишь голый текст получается без вставки/замены своего текста(тегов).

Data Mining » Поиск шаблонов в данных » Апрель 3, 2015 23:16:57

Есть наборы данных со статистикой посещений, хочется получать на их основе какие то прогнозы.

Есть что почитать на эту тему, в применении к питону?

Python проекты » Восстановление очищенных смс на Андроид » Апрель 2, 2015 13:04:29

Добрый день!

Тут есть хорошая тема для АндрПитон. Но как восстановить удалённых сообщении с помощью ПитонМобайл? А также как можно сохранить файл *.ру* как *.арр*?Есть идеи? Думаю хороший проект…. .. …. ….

Python для экспертов » Python и перенос сайта простым копированим в тарантул » Март 28, 2015 04:06:26

И так недавно наткнулся на интересный момент есть такое безобразие как nosql БД (имхо) http://try.tarantool.org/
Вот призентация, правда они пишут на lua ну думаю разабраться поможет https://zserge.wordpress.com/2012/02/23/lua-%D0%B7%D0%B0-60-%D0%BC%D0%B8%D0%BD%D1%83%D1%82/ и http://habrahabr.ru/post/184538/
Вот тут и кроется тонкий момент как говорит эта призентация https://www.youtube.com/watch?v=bM0zK0lwEz8 вот тут они говорят, что можно обратится как к бд и она будет прекидывать запросы как в бд и просто переноситься как master - master.
Интересный момент, допустим есть сайт с этой БД и мы хотим его зазеркалить и как можно быстрее и без особых заморочек с поднятием БД и её конфигурированием.
Если я правильно понимаю материал, есть модуль https://pythonhosted.org/tarantool/ (при установки их способом возникли ошибки используйте если будет ругаться
easy_install tarantool
)

>>> import tarantool
>>> help(tarantool)

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

Задача получить максимально быстро развертываемую систему зеркал просто копированием корневых фаилов и прописанием нового хост-сервера(конечно днс надо еще правильно с nginx настроить). Хотя в теории и этого может не понадобиться, если в днс прописывать какому диапазону передавать какой сервер.

Базы данных » ошибка в __table_args__.prefixes? » Март 27, 2015 15:03:23

Есть функция, динамически генерирующая и возвращающая новый класс.
Кусок кода:

def get(arg):
    attributes['__table_args__'] = {'extend_existing': True,  # allows create same objects at one runtime
                                                  'prefixes': ["TEMPORARY"]}  # always creating temporary table
    return type(result.name, (Base,), attributes)  # returns new class with Properties of Object instance

Далее делаю так:
>>> from app import get, engine
>>> from sqlalchemy.schema import CreateTable
>>> sim = get('sim_number')
>>> sim = get('sim_number') # допустим, понадобилось создать ещё один экземпляр
/usr/local/lib/python3.4/dist-packages/sqlalchemy/ext/declarative/clsregistry.py:167: SAWarning: This declarative base already contains a class with the same class name and module name as bill_classes.sim_number, and will be replaced in the string-lookup table.
  existing.add_item(cls)
Traceback (most recent call last):
  File "/usr/lib/python3.4/code.py", line 90, in runcode
    exec(code, self.locals)
  File "<input>", line 1, in <module>
  File "/media/spicin/7EB7608F698AE718/beeapi/bill_classes.py", line 139, in get
    return type(result.name, (Base,), attributes)  # returns new class with Properties of Object instance
  File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/ext/declarative/api.py", line 55, in __init__
    _as_declarative(cls, classname, cls.__dict__)
  File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/ext/declarative/base.py", line 254, in _as_declarative
    **table_kw)
  File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/sql/schema.py", line 396, in __new__
    table._init_existing(*args, **kw)
  File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/sql/schema.py", line 548, in _init_existing
    self._extra_kwargs(**kwargs)
  File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/sql/schema.py", line 552, in _extra_kwargs
    self._validate_dialect_kwargs(kwargs)
  File "/usr/local/lib/python3.4/dist-packages/sqlalchemy/sql/base.py", line 282, in _validate_dialect_kwargs
    "named <dialectname>_<argument>, got '%s'" % k)
TypeError: Additional arguments should be named <dialectname>_<argument>, got 'prefixes'

Почему при первом создании экземпляра класса всё ок, при втором и последующих - ошибка?

Python для новичков » Вывод результата выполнения команд вызываемого bat-ника по мере появления текста » Март 27, 2015 09:47:16

Всем привет.
Подскажите пожалуйста как сделать, чтобы вывод результата выполнения команд bat-ника выводился по мере появления текста? Знаю, есть куча материала по этой теме, но у меня не получается это реализовать. :
def send_text(msg):
     text["state"]='normal'
     text.delete(1.0, END)
     text.insert("end", msg.decode('866'))
     text.update()
     text["state"]='disable'
...
cmd='call export.bat'
 proba=subprocess.check_output(cmd, stderr=subprocess.STDOUT)
 while True:
    s = proba.stdout.readline()
    if not s: break
    send_text(s)
Но этот код не работает. Ошибка: AttributeError: ‘bytes’ object has no attribute ‘stdout’.

Смог сделать только, чтоб выдавался весь текст по завершению:
cmd='bat\\Helpful information\\' + a
 proba=subprocess.check_output(cmd, stderr=subprocess.STDOUT)
 send_text(proba)

Центр помощи » API Одноклассников: нужно написать скрипт для получения данных пользовтелей » Март 24, 2015 01:05:41

Необходимо на выходе получить простой список из всего 4 параметров данных от api Одноклассников. Суть: по ID собрать данные по другим параметрам.
При необходимости - прокси и тд обеспечим. С документацией, и, в частности, с запросами к API можно ознакомиться здесь: http://apiok.ru/wiki/pages/viewpage.action?pageId=46137373#APIДокументация(Русский)-Пользователи

Если вы готовы помочь - напишите на hypeskype@gmail.com

Центр помощи » открытие ui-файла по нажатию кнопки » Март 18, 2015 08:29:38

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

Тапками не бейте сильно, я новичок в python, возможно решение моей проблемы совсем простое и лежит на поверхности(

Network » получить контент страницы, проблемы с прокси? » Март 17, 2015 09:06:30

import tornado.ioloop
import tornado.web
import tornado.httpclient

config = {
#'connect_timeout': 50.0,
#'request_timeout': 50.0,
‘proxy_host’: ‘my_proxy’,
‘proxy_port’: my_port
}

def handle_request(response):
if response.error:
print “Error:”, response.error
else:
print response.body
tornado.ioloop.IOLoop.instance().stop()

http_client = tornado.httpclient.AsyncHTTPClient()
http_client.fetch("http://some_site.ru", handle_request, **config)

tornado.ioloop.IOLoop.instance().start()


интернет - через прокси, выходит по таймауту, прописал прокси как параметр в fetch - не помогло

у соседа отрабатывает все нормально, у него выделенный канал

Центр помощи » Помогите с лабой на версии 2.7 » Март 15, 2015 20:38:09

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

ЗАДАНИЕ

КОД В НАЛИЧИИ

Python для новичков »  joomla 2.5. python » Март 15, 2015 20:20:16

Добрый вечер !
У меня есть сайт сделан на joomla 2.5.
Я использую компонент Estate Agent.
Так вот можно на питоне написать скрипт чтобы все содержимая экспортировать в XML файл.
Если да то где можно достать информацию спасибо заранее

Python для новичков » Программирование вэйпойнта в квадратной матрице » Март 14, 2015 22:33:48

Иными словами - пресловутый проход по лабиринту и поиск нужной точки, спрятанной в задаче на одной из точек матрицы (x,y). Но! Гугление мало чем помогло - все эти методы волны, А-Б, оптимальные маршруты и т.д. Они подразумевают работы с координатами.
В моем примере привязки к координатам быть не должно - только лишь принцип тычущегося носом в стенку котенка: наткнулся на стенку - поворот влево/вправо (“метод одной руки”), пошел дальше тыкаться.
Но не пойму несколько вещей:
  • Как организовать запоминание маршрута, чтобы не шел туда же, откуда пришел.
    Блуждание по кругу - подозреваю, что по какому-то триггеру нужно разворачивать и “менять руку”, но тут есть риск вообще просто крутиться на месте
    Я так понимаю, нужно задать список или словарь с какой-то относительной системой координат, типа “отправная точка - это (0,0), далее движение +1, то есть заносим и будет уже (0,1) или (1,0). Тоже непонятно - как понять, в какой момент разворачивать координаты и как потом сравнить по итогу, что я не возвращаюсь тем же путем”.

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

Итог - запутался совсем. Подытожу по сути: задача с нахождением неизвестной нам точки (зашитой программно - при координатах наших = координатах данной точки срабатывает триггер и программа завершает работу) в лабиринте, но без знания размеров матрицы и без запоминания координат. Просто тупое брожение “по базе”, которое не должно стать тупым. Вот.

Python для новичков » Помогите вывести изображение с web-камеры на QGraphicsView » Март 14, 2015 14:41:53

Здравствуйте, в Python я совсем новичек, да и в программировании в целом очень плох, пишу программу для анализа спектра излучения (моя научная работа).
Суть программы в следующем - форму создал в QDesigner, камера захватывает изображение через opencv, выводит его в QGraphicsView, дальше идут преобразования и математика (это будет потом? сначала с основами надо справиться). Насколько я понимаю для QGraphicsView надо организовать сцену. В QDesigner для QGraphicsView я поставил размер сцены по размеру QGraphicsView. Запускаю - изображение с вебкамеры выводится в отдельном окне (по коду правильно), закрываю и после этого выводится форма. Для начала решил выводить в QGraphicsView простую картинку, но и это мне никак не удается. Читал доки и примеры, в том числе на этом форуме, никак не могу понять в чем ошибка… Буду благодарен за любые конструктивные советы и помощь

#!/usr/bin/python
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui, QtOpenGL
from Webcam import Ui_MainWindow
import sys, cv, cv2, numpy
class Web(QtGui.QMainWindow, Ui_MainWindow):
    def __init__(self, parent = None):
        QtGui.QMainWindow.__init__(self, parent)
        self.setupUi(self)
class MyView(QtGui.QGraphicsView):
    def __init__(self,*args):
        QtGui.QGraphicsView.__init__(self,*args)
        self.scene = QtGui.QGraphicsScene()
        self.scene.addPixmap('1.png')
        view = MyView(self.scene)  
capture = cv.CaptureFromCAM(-1)
while True:
    img = cv.QueryFrame(capture)
    cv.ShowImage("WEB-camera", img)
    if cv.WaitKey(10) == 27:
        break
cv.DestroyWindow("WEB-camera")
if __name__ == '__main__':
    app = QtGui.QApplication(sys.argv)
    MainApp = Web()
    
    
    MainApp.show()
    sys.exit(app.exec_())