Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2016 23:26:09

kukr123
Зарегистрирован: 2016-05-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных между программами

Есть скрипт, который обрабатывает данные. Есть второй, который использует данные. Как передавать эти данные между ними, чтобы родительская программа не останавливалась? С помощью pipe это возможно сделать?
Если не сложно, подбросите примеры или литературу по этой теме.

Офлайн

#2 Май 16, 2016 06:04:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Передача данных между программами

pipe Да возможно. Есть subprocess.Popen, shared memory, socket, файлы ОС, коннекты к базам данных и еще куча способов. Но самый простой способ это объединить скрипты в одну программу. Другие способы надо рассматривать если вы можете объяснить почему нельзя проводить обработку в одной программе.

По поводу не останавливалась. А что вашей программе еще надо делать? От этого собственно и ответ зависит. Если это GUI то у него свои очереди сообщений…



Отредактировано doza_and (Май 16, 2016 06:07:19)

Офлайн

#3 Май 16, 2016 09:22:41

kukr123
Зарегистрирован: 2016-05-14
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Передача данных между программами

doza_and
pipe Да возможно. Есть subprocess.Popen, shared memory, socket, файлы ОС, коннекты к базам данных и еще куча способов. Но самый простой способ это объединить скрипты в одну программу. Другие способы надо рассматривать если вы можете объяснить почему нельзя проводить обработку в одной программе.По поводу не останавливалась. А что вашей программе еще надо делать? От этого собственно и ответ зависит. Если это GUI то у него свои очереди сообщений…

Основная программа довольно большая (2200 строк), она нужна для управления 3D-принтером. Она имеет GUI. Мне нужно установить ее на Raspberry, к которому подцепить маленький дисплей и кнопки, чтобы он читал с флешки файлы, выводил на дисплей и этот список листался кнопками. Для этого написал вспомогательную программу, которая по завершении возвращает имя выбранного файла. Основная программа его получает и работает с этим файлом. Теперь нужно, чтобы дисплей выводил не только с список файлов, но и процент загрузки файла. Сейчас процент выводится в GUI, нужно чтобы это дублировалось на дисплее, за который отвечает моя программа.

Офлайн

#4 Май 16, 2016 10:03:34

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Передача данных между программами

Почти наверняка надо делать не отдельную программу а добавлять функциональность в основную. Одна из основных концепций питона - возможность у модулей реализовать возможность автономной работы и встраивание во внешнюю программу см if __name__ == “__main__”. Вам оно подойдет. Осталось неясно используется одна GUI библиотека или разные. Программы выполняются на 2 устройствах или на одном. Неясен тезис по поводу 2200 строк. Разбивайте программу на обозримые модули.



Отредактировано doza_and (Май 16, 2016 10:04:10)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version