2016-07-05 3 views
0

Я бы хотел, чтобы один скрипт python работал (иногда), который будет читать нажатия кнопок (из wiimote) и обновлять файл conf, чтобы другой скрипт python мог использовать этот файл для регулировки яркости освещения.Использование (conf) файла для обмена переменными между скриптами python?

Я угадываю Лучшее способ иметь два обмена сценариями python/share переменные - использовать сокеты между двумя сценариями или, возможно, промежуточный SQL db, да?

(Edit: Я предполагаю, что я ищу, чтобы разделить эти переменные между более чем два скриптов.)

Если да, то я ожидаю, что я буду в конечном итоге получить там. В конечном итоге моя настройка будет охватывать несколько узлов Pi и включает в себя, вероятно, сотни таких переменных, которые обновляются на разных частотах ... Поэтому я хотел бы получить некоторые данные о долгосрочных решениях, которые будут обрабатывать это по шкале.

Но я относительно новый и надеялся, что смогу просто получить это относительно простое решение, достаточно хорошо работающее с ConfigParser для устранения других аспектов настройки на данный момент.

Я могу получить сценарий освещения для чтения моей переменной файла conf и принять этот 10-битный int и настроить освещение просто отлично.

Но у меня проблемы с сценарием wiimote.

Базовый код, в котором находится существующий int из файла conf, очень тонкий, увеличивает его на единицу (например, когда я нажимаю кнопку «+» на wiimote), просто отлично и даже записывает новый int обратно в файл conf просто отлично ... один раз.

При нажатии второй кнопки я получаю сообщение об ошибке «аргумент типа« int is is iterable ».

if (buttonPress): 
    b = config.getint('levels', 'ch00') 
    b += 1 
    config.set('levels', 'ch00', b) 
    with open(wiimote.conf, "w") as config_file: 
     config.write(config_file) 
+0

У вас, кажется, есть ряд проблем с вашим кодом: 'If' вместо' if', 'with.open' вместо' with open', вы уверены, что используете этот код? Можете ли вы указать, в какой строке происходит исключение? – cdarke

+0

Извините, что «If» вместо «if» и «with.open» вместо «with open» были ошибками транскрипции ... Я использую Stack Exchange на мобильных устройствах и не могу скопировать/вставить свой код. Я отредактировал свой вопрос, чтобы исправить их, и снова прокомментирую, когда я проверю, где происходит исключение. –

+0

Исключение происходит на 2-й строке здесь; b = config.getint ... второй раз это, если секция запущена. –

ответ

0

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

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