我有一个磁铁链接(例如:磁铁:?xt=urn:btih:1c1b9f5a3b6f19d8dbcbab5d5a43a585e4a7db6),包含在一个变量中作为字符串,我希望脚本打开处理磁铁链接的默认程序,以便它开始下载torrent(就像我从文件管理器中打开磁铁链接一样)。
为了明确答案,我们将说,我们在一个名为magnet_link
的变量中有磁环。
在Windows上,您可以使用os.startfile
:
os.startfile(magnet_link)
对于Mac/OSX,您可能会使用appescription并将其管道传输到osascript
,对于Linux,您可能可以使用xdg-open
。
下面是一个小代码片段,总结了所有操作系统上的方法
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)
在mac上,如果你安装了一个应用程序来处理它,只需将链接传递到打开命令
open "some url"
使用来自子流程的东西,我会想象