我有一个磁力链接(例如:magnet:?xt=urn:btih:1c1b9f5a3b6f19d8dbcbab5d5a43a6585e4a7db6)作为字符串包含在变量中,并且希望脚本打开处理磁力链接的默认程序,以便它开始下载种子(例如我从我的文件管理器中打开了一个磁力链接)。
为了让答案更清楚,我们会说我们在一个名为 的变量中有磁力链接magnet_link
。
我有一个磁力链接(例如:magnet:?xt=urn:btih:1c1b9f5a3b6f19d8dbcbab5d5a43a6585e4a7db6)作为字符串包含在变量中,并且希望脚本打开处理磁力链接的默认程序,以便它开始下载种子(例如我从我的文件管理器中打开了一个磁力链接)。
为了让答案更清楚,我们会说我们在一个名为 的变量中有磁力链接magnet_link
。
在 Windows 上,您可以使用os.startfile
:
os.startfile(magnet_link)
对于 Mac/OSX,您可能可以使用 applescript 并将其通过管道传输到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 命令
open "some url"
使用子流程中的东西我会想象