首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在使用python的Ubuntu上打开磁铁链接

在使用python的Ubuntu上打开磁铁链接
EN

Stack Overflow用户
提问于 2012-03-09 15:45:46
回答 2查看 3K关注 0票数 2

我有一个来自torrent网站的磁铁链接,可以打开这个名为transmission.How的程序,我可以用Python打开它吗?

我在ubuntu btw上。我听说一个叫xdg-open的东西可以做这个把戏,但是我怎么用它来打开磁铁链接呢?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-09 16:32:30

查看transmission-gtk的命令行参数会有所帮助:

$transmission gtk--帮助

用法:transmission gtk选项...

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

代码语言:javascript
复制
import os
os.system("transmission-gtk urlhere")

对外部程序进行此类调用的一种更好、更复杂的方法是使用subprocess模块。在python - how to create a subprocess?下可以找到更多的例子。

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

打开$xdg-

--手册

..。

命令行语法中有1个错误。

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

3找不到所需工具。

4操作失败。

票数 4
EN

Stack Overflow用户

发布于 2017-11-28 16:16:16

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

代码语言:javascript
复制
  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)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9630569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档