Откройте PDF с помощью программы по умолчанию в Windows 7

У меня есть программа, в которой справочная документация находится в формате .pdf в той же папке, что и модуль .py. Мне нужна программа для открытия .pdf с помощью системной программы для чтения PDF по умолчанию.

Я использую этот код в своей программе:

if sys.platform.startswith('darwin'):
    os.system("SlannanHelp.pdf")
elif sys.platform.startswith('linux'):
    os.system("SlannanHelp.pdf")
elif sys.platform.startswith('win32'):
    os.filestart("SlannanHelp.pdf")

Однако, когда это запускается в Windows 7, я получаю следующую ошибку:

Трассировка (последний последний вызов): файл "C:\Users\user\MousePaw Games\MousePaw Labs\Slannan\Slannan.py", строка 1286, в help_event os.filestart("SlannanHelp.pdf") AttributeError: 'module' объект не имеет атрибута "filestart"

Я предполагаю, что os.filestart работает в системах NT, но не в Windows 7. Есть ли команда, которая работает для обоих, или только для Windows 7? Если последнее, как мне проверить, работает ли пользователь с версией Windows NT или 7?

Заранее спасибо!


person CodeMouse92    schedule 08.09.2011    source источник
comment
Вы пытались использовать os.system() в Windows?   -  person John Lyon    schedule 08.09.2011
comment
я бы попробовал os.system('start SlannanHelp.pdf')   -  person    schedule 08.09.2011


Ответы (1)


Проблема в том, что os.filestart вообще не существует.

Вы, вероятно, хотите os.startfile

Вы также должны взглянуть на: Открыть документ с приложением по умолчанию в Python и Как открыть файл в стандартном приложении? которые рекомендуют system('open', filepath) для Mac и system('xdg-open', filepath) для Linux

person Mihai Stan    schedule 08.09.2011
comment
Я попробую это. Я использовал функции xdg-open и open, но по какой-то причине они исчезли в C&P... - person CodeMouse92; 08.09.2011
comment
Оно работает! Я не могу найти достаточно кнопок для голосования за ваш ответ. Кратко, эффективно и по делу. Вы решили мою проблему и указали на другую ошибку в моем файле, которую я пропустил. Спасибо!! - person CodeMouse92; 08.09.2011