2013-10-25 7 views
0

я следующая программа работаетДоступ Запуск программы Python из другой программы Python

collector.py 

data=0 
while True: 
    #collects data 
    data=data+1 

У меня есть другая программа cool.py, который хочет получить доступ к текущей стоимости данных. Как я могу это сделать?

В конце концов, что-то вроде:

cool.py

getData() 

* идея будет использовать глобальную переменную для данных?

+0

Вам нужен демон? http://stackoverflow.com/questions/473620/how-do-you-create-a-daemon-in-python –

+0

Самый простой способ - записать данные в файл каждую минуту с отметкой времени в имени файла. Тогда ваш другой файл мог бы искать новые файлы каждую минуту и ​​удалять их после обработки. –

+2

'global' не поможет: каждый процесс имеет свои собственные глобальные переменные. Вам нужна какая-то форма межпроцессного общения, и * обе программы должны * сотрудничать *, чтобы это произошло. Возможности включают сокеты, каналы, модуль «многопроцессорности» или что-то простое, как одна программа, периодически записывающая данные в файл, а другая программа, читающая этот файл. –

ответ

0

Вы можете использовать отображение памяти. http://docs.python.org/2/library/mmap.html

Например, вы открываете файл в tmp directore, следующий u сопоставляет этот файл в память в обеих программах и записываете u данные в этот файл.

+0

интересно! плохо ли выглядеть –

+0

- это эффективность? –

+0

Да. Для сопоставления памяти в вашем файле используется ваш ram. Я использую отображение памяти в программе на C++, но в python также очень эффективен. Если вы хотите, я могу дать вам пример кода, но в C. – Naster

Смежные вопросы