Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 2, 2017 23:40:33

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Вывод результата скрипта в html с последующим его просмотром и удалением

Доброго времени суток!
Есть некоторый скрипт, результат работы которого сохраняется в html. Затем я хочу просмотреть этот файл через браузер и после просмотра удалить. Пробую сделать это так:

 ...
def render_diff(self):
    browser_name = webbrowser.get().basename
    process = subprocess.Popen(args=[browser_name, result_path])
    process.wait()
    os.remove(result_path)
Все работает, как и задумано, если дефолтный браузер - firefox, но если установить в качестве дефолтного - chrome или chormium, то файл удаляется сразу же после старта браузера, так как процесс в случае с хромом сразу же отвязывается от терминала. Как это исправить? Или подход к задаче неверный?

Офлайн

#2 Июнь 3, 2017 00:10:39

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Вывод результата скрипта в html с последующим его просмотром и удалением

Стоило написать, решение само нашлось )

     def render_diff(self):
        for name in ('chrome', 'chromium', 'firefox'):
            try:
                webbrowser.get(name)
                process = subprocess.Popen(args=[name, result_path])
                process.wait()
                os.remove(result_path)
                break
            except webbrowser.Error:
               pass
Если в webbrowser.get передавать имя браузера поведение отличается, и все работает, как надо

Офлайн

#3 Июнь 3, 2017 00:17:17

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Вывод результата скрипта в html с последующим его просмотром и удалением

Хотя нет, файл уже можно просмотреть в браузере, но удаляется он раньше, чем завершится процесс (
Вопрос остается, можно ли удалить файл только после завершения процесса?

Офлайн

#4 Июнь 3, 2017 00:29:49

Stright
От: Кострома
Зарегистрирован: 2015-01-20
Сообщения: 139
Репутация: +  16  -
Профиль   Отправить e-mail  

Вывод результата скрипта в html с последующим его просмотром и удалением

Выяснилось, что файл удаляется, когда надо, если браузер не запущен и удаляется сразу же после запуска процесса, если браузер уже открыт, в принципе такое поведение устраивает, вопрос снимается )

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version