2

我有一个来自 torrent 网站的磁力链接,应该打开这个名为传输的程序。我如何用 Python 打开它?

顺便说一句,我在ubuntu上。我听说这个叫做xdg-open可以解决问题的东西但是我如何使用它来打开磁铁链接?

如果那不是我要找的代码,我应该用什么来运行磁力链接?

4

2 回答 2

4

查看 help 的命令行参数transmission-gtk

$传输-gtk--帮助

用法:transmission-gtk [OPTION...] [torrent files or urls]

python解决方案的一种快速而肮脏的方法是使用该os模块:

import os
os.system("transmission-gtk urlhere")

对外部程序进行此类调用的一种更好、更复杂的方法是使用该subprocess模块。在python下可以找到更多示例-如何创建子进程?.

xdg-open工作方式几乎相同。但它不是直接调用传输客户端,而是选择首选的 Torrent 应用程序(这里首选是指默认应用程序,可以使用 Ubuntu 系统设置中的默认应用程序菜单进行设置)。通过从命令行调用程序反复指向您提供的帮助文本,检查以下的退出代码可能会很有趣xdg-open

$ xdg-打开--手动

...

1 命令行语法错误。

2 在命令行中传递的文件之一不存在。

3 找不到所需的工具。

4 操作失败。

于 2012-03-09T08:32:29.813 回答
0

下面的代码总结了在所有操作系统上下载的方法。

  import subprocess , os , sys

  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:16:16.253 回答