5

我有一个磁力链接(例如:magnet:?xt=urn:btih:1c1b9f5a3b6f19d8dbcbab5d5a43a6585e4a7db6)作为字符串包含在变量中,并且希望脚本打开处理磁力链接的默认程序,以便它开始下载种子(例如我从我的文件管理器中打开了一个磁力链接)。

为了让答案更清楚,我们会说我们在一个名为 的变量中有磁力链接magnet_link

4

3 回答 3

10

在 Windows 上,您可以使用os.startfile

os.startfile(magnet_link)

对于 Mac/OSX,您可能可以使用 applescript 并将其通过管道传输到osascript. 对于 Linux,您可能可以使用xdg-open.

于 2012-02-19T16:42:05.603 回答
2

这是一个小代码片段,总结了所有操作系统上的方法

  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)
于 2017-11-28T08:14:10.953 回答
1

在 Mac 上,如果您安装了可以处理它的应用程序,只需将链接传递给 open 命令

open "some url"

使用子流程中的东西我会想象

于 2012-02-29T13:02:23.623 回答