Python 3: Открытие Магнитной Ссылки, Содержащейся В Переменной


У меня есть магнитная связь (например: Магнит:?xt=urn: btih: 1c1b9f5a3b6f19d8dbcbab5d5a43a6585e4a7db6) содержится в переменной в виде строки и хотел бы, чтобы скрипт открыл программу по умолчанию, которая обрабатывает ссылки на магнит, чтобы она начала загрузку торрента (например, если бы я открыл ссылку на магнит из моего файлового менеджера).

Для ясности ответов скажем, что у нас есть магнитная связь в переменной под названием magnet_link.
3 4

3 ответа:

В Windows вы можете использовать os.startfile:

os.startfile(magnet_link)

Для Mac/OSX вы, вероятно, можете использовать applescript и передать его в osascript, для Linux вы можете использовать xdg-open.

На mac, Если у вас есть установленное приложение, которое будет обрабатывать его, просто передайте ссылку на команду open

open "some url"

Используя что-то из подпроцесса, я бы предположил

Вот небольшой фрагмент кода, который суммирует метод на всех операционных системах

  import sys , subprocess
  def open_magnet(magnet):
        """Open magnet according to os."""
        if sys.platform.startswith('linux'):
            subprocess.Popen(['xdg-open', magnet],
                             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        elif sys.platform.startswith('win32'):
            os.startfile(magnet)
        elif sys.platform.startswith('cygwin'):
            os.startfile(magnet)
        elif sys.platform.startswith('darwin'):
            subprocess.Popen(['open', magnet],
                             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        else:
            subprocess.Popen(['xdg-open', magnet],
                             stdout=subprocess.PIPE, stderr=subprocess.PIPE)