Форум сайта python.su
Коллеги! Столкнулся со следующей проблемой (актуальной, по-моему, не только для питона). Вызываю из numpy функцию решения системы линейных алгебраических уравнений. Делаю это так:
# Прямое решение СЛАУ def _solve_direct(self): self._progress.set_process('Solving of equation system...', 1, 1) self.__global_matrix_stiffness = self.__global_matrix_stiffness.tocsr() try: self.__global_load = spsolve(self.__global_matrix_stiffness, self.__global_load) except ArpackError: return False self._progress.set_progress(1) return True
Офлайн
Просто анимация - это бессмысленная вещь. Абсолютно. Программа с таким же успехом может зависнуть или пуститься в бесконечнй цикл, при этом анимация будет только вводить в заблуждение.
Другое дело отображение прогресса исполнения. Это наглядно и информатично, но не всегда возможно. Думаю этот случай как раз из последнего.
Офлайн
Так-то оно так. Но в данном случае предполагается, что мы используем библиотечную процедуру, которая не должна зависнуть (в моем случае СЛАУ либо решится, либо нет). Просто хочется, чтобы пользователь видел, что что-то таки происходит в программе.
Отредактировано SeregaGomen (Дек. 2, 2018 19:44:19)
Офлайн
Так я об этом и говорю - вы достоверно не знаете об этом и можете вводить в заблуждение.
Конечно если вам очень хочется, то запускайте нагруженный код в отдельном потоке/процессе, а в основном играйтесь с выводом на консоль. Что бы не подключать ncurses и ими подобными есть простой способ - спец символ \r - возврат коретки без переноса строки. МОжно писать поверх предыдущего символа и так симулировать что процесс идет. Правда не помню работает ли это в случае с виндовой консолью
Офлайн
JOHN_16работает.
Правда не помню работает ли это в случае с виндовой консолью
[code python][/code]
Офлайн