Python 3: Открытие ссылки магнита, содержащейся в переменной - PullRequest
4 голосов
/ 19 февраля 2012

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

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

Ответы [ 3 ]

8 голосов
/ 19 февраля 2012

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

os.startfile(magnet_link)

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

1 голос
/ 28 ноября 2017

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

  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)
1 голос
/ 29 февраля 2012

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

open "some url"

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

...