Мне потребовалось переделать программу, написанную на C# и работающую под mono на Raspberri Pi на аналог на python. Я в python'е не очень понимаю и столкнулся с такой проблемой:
Программа управляет чековым принтером и просто пишет и читает байты в /dev/usb/lp0
Я использовал конструкцию вида
with open('/dev/usb/lp0', 'wb') as prnDev: for b in byte: prnDev.write(chr(b))
первый раз (при старте) туда передается массив byte с последовательностью байтов инициализации принтера и это работает. Как мне кажется. Но при следующих обращениях к принтеру программа виснет на последней строке этого фрагмента. И даже перезапуск не помогает. Только перезагрузка Rospberry. Такое ощущение, что /dev/usb/lp0 не освобождается после выхода из with и поэтому все последующие попытки что-то читать/писать оказываются безуспешными. В чем может быть проблема? как гарантированно закрыть подключение к устройству?