В GTKMM метод on_draw перестает вызываться после того, как в отдельном потоке происходит недействительность

Используйте модуль subprocess, доступный на Python 2.4+, а не os.system(), поэтому вам не нужно иметь дело с экранированием оболочки.

import subprocess, os
if sys.platform.startswith('darwin'):
    subprocess.call(('open', filepath))
elif os.name == 'nt':
    os.startfile(filepath)
elif os.name == 'posix':
    subprocess.call(('xdg-open', filepath))

Двойные круглые скобки связаны с тем, что subprocess.call() хочет, чтобы в качестве первого аргумента была последовательность, поэтому мы используем кортеж здесь. В Linux-системах с Gnome есть также команда gnome-open, которая делает то же самое, но xdg-open является стандартом Free Desktop Foundation и работает в среде рабочего стола Linux.

0
задан jmgonet 16 January 2019 в 09:46
поделиться