Форум сайта python.su
Расскажу саму проблему в общем:
Программа (разработчиков, не моя) формирует печатные формы платежных поручений в текстовый файл с досовской кодировкой и управляющими символами для печати на матричном принтере. Матричные принтеры на пороге вымирания. Поэтому нужно наладить перенаправление файла на лазерный принтер. Нашла хорошие 2 программки SPrint и DOSPRN, но в обеих есть нюансы.
SPrint хорошо ловит файлы, выводит на печать даже целый поток, но……. печатаются некоторые управляющие символы, видимо она их не принимает за управляющие. Возможности это настроить нет.
DOSPRN напротив, печатает все, как надо, но…….. когда идет печать не одной платежки, а нескольких, то она выводит только последнюю. Дело в том, что платежки формируются по одной в один и тот же файл и сразу же отправляются на LPT1. SPrint если без предпросмотра, то успевает словить все по очереди. DOSPRN не успевает среагировать на каждое изменение файла.
Таким образом, мне нужно или убирать управляющие символы, или ловить изменение файла и переписывать все платежки в один другой файл, а его уже будет ловить DOSPRN.
Думаю, легче реализовать второй вариант. Нашла функцию os.path.getmtime(path), выводит числовое значение времени последней модификации файла. А нельзя ли обойтись без времени, просто вызвать событие на модификацию файла?
Офлайн
Думаю что вс-таки проще убрирать управляющие символы. Можно, конечно, и вызывать событие на модификацию, но подозреваю что там будут нюансы.
Офлайн
Ferroman
Отличные примеры, спасибо. Мне в частности полезен третий вариант, даже корректировать мало.
Офлайн