Maison  >  Article  >  développement back-end  >  Comment utiliser Python pour créer des graines BT et obtenir des informations sur les graines BT sur la plate-forme Linux

Comment utiliser Python pour créer des graines BT et obtenir des informations sur les graines BT sur la plate-forme Linux

高洛峰
高洛峰original
2017-02-07 16:54:241711parcourir

L'exemple de cet article décrit comment utiliser Python sur la plate-forme Linux pour créer des graines BT et obtenir des informations sur les graines BT. Je voudrais le partager avec vous pour votre référence. Les détails sont les suivants :

J'ai récemment étudié la création d'un environnement de serveur Linux BT. J'ai besoin de créer des graines BT et d'obtenir des informations sur les graines BT sous Linux. J'ai réglé le processus :

Créez l'adresse de téléchargement de ce site Web pour le logiciel BT Seed.

Installation :

[root@localhost src]# tar zxf mktorrent-1.0.tar.gz
[root@localhost src]# cd mktorrent-1.0
[root@localhost mktorrent-1.0]# make
[root@localhost mktorrent-1.0]# make install
[root@localhost ~]# which mktorrent
/usr/local/bin/mktorrent

Besoin du module bencode de Python pour obtenir les informations sur les semences BT, adresse de téléchargement : https://pypi.python.org/packages/source / b/bencode/bencode-1.0.tar.gz.

Installation :

#tar -zxf bencode-1.0.tar.gz
#cd bencode-1.0.tar.gz
#python setup.py install

Le script python produit et vérifié est le suivant :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os, re, time, sys
import hashlib, bencode
file_name = 'bt_test.exe'
bt_source = '/data/updir/%s' % file_name
bt_name = '/data/source/%s.torrent' % file_name
if os.path.exists(bt_name):
  os.remove(bt_name)
if os.path.exists(bt_source):
  conm = "/usr/local/bin/mktorrent -v -p -l 18 -a http://bt1.text.cn/announce -a http://bt2.text.cn/announce -o %s %s" % (bt_name,bt_source)
  res = os.popen(conm).readlines()[-1].strip()
  if 'done' in res:
    bt_path = {}
    bt_file = open(bt_name, 'rb')
    bt_info = bencode.bdecode(bt_file.read()).get('info')
    bt_info_hash_hex = hashlib.sha1(bencode.bencode(bt_info)).hexdigest()
    if os.path.isdir(bt_source):
      bt_file_size = 0
      for length in bt_info.get('files'):
        bt_file_size = bt_file_size + int(length['length'])
        bt_path['/'.join(length['path'])] = length['length']
    else:
      bt_file_size = bt_info.get('length')
      bt_file_name = bt_info.get('name')
      bt_path[bt_file_name]=bt_file_size
    bt_file.close()
    print bt_path
    print "Create torrent success"
  else:
    print "Create torrent Error"
    sys.exit()
else:
  print "This source not find"
  sys.exit()

file_name est le nom du fichier ou du répertoire utilisé pour l'amorçage.

J'espère que cet article sera utile à tout le monde dans la programmation Python.

Pour plus d'articles sur la façon d'utiliser Python pour créer des graines BT et obtenir des informations sur les graines BT sur la plate-forme Linux, veuillez faire attention au site Web PHP chinois !

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn