Pergunta

Eu tenho um link magnético de um site de torrent que deve abrir este programa chamado transmissão. Como faço para abri-lo com Python?

estou no Ubuntu aliás.Eu ouvi uma coisa chamada xdg-open pode resolver o problema, mas como faço para usá-lo para abrir o link magnético?

e se esse não for o código que estou procurando, o que devo usar para executar o link magnético?

Foi útil?

Solução

Dando uma olhada nos argumentos da linha de comando de transmission-gtk ajuda:

$ transmissão-gtk --help

Uso:transmissão-gtk [OPÇÃO...] [arquivos torrent ou URLs]

Uma abordagem rápida e suja para uma solução python é usar o os módulo:

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

Uma maneira muito melhor e mais sofisticada de fazer chamadas para programas externos é usar o subprocess módulo.Mais alguns exemplos podem ser encontrados em python – como criar um subprocesso?.

xdg-open funciona praticamente da mesma maneira.Mas em vez de chamar o cliente de transmissão diretamente, ele escolhe o aplicativo Torrent preferido (preferido neste caso significa o aplicativo padrão, que pode ser definido usando o menu de aplicativos padrão nas configurações do sistema Ubuntu).Apontando repetidamente para os textos de ajuda fornecidos ao chamar o programa a partir da linha de comando, pode ser interessante inspecionar os códigos de saída do xdg-open:

$ xdg-open --manual

...

1 Erro na sintaxe da linha de comando.

2 Um dos arquivos passados ​​na linha de comando não existia.

3 Não foi possível encontrar uma ferramenta necessária.

4 A ação falhou.

Outras dicas

O código abaixo resume o método de download em todos os sistemas operacionais.

  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)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top