linux平台使用Python制作BT种子并获取BT种子信息的方法


Posted in Python onJanuary 20, 2017

本文实例讲述了linux平台使用Python制作BT种子并获取BT种子信息的方法。分享给大家供大家参考,具体如下:

最近研究了一下linux BT服务器环境的搭建,需要在linux下制作BT种子并获取BT种子信息,整理了一下这个过程:

制作BT种子软件本站下载地址

安装:

[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

需要python的bencode模块来获取BT种子信息,下载地址: https://pypi.python.org/packages/source/b/bencode/bencode-1.0.tar.gz。

安装:

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

制作和验证的python脚本如下:

#!/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为做种的文件或目录名字。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中字典(dict)合并的四种方法总结
Aug 10 Python
python实现随机梯度下降(SGD)
Mar 24 Python
python根据txt文本批量创建文件夹
Dec 08 Python
python地震数据可视化详解
Jun 18 Python
python文件转为exe文件的方法及用法详解
Jul 08 Python
使用WingPro 7 设置Python路径的方法
Jul 24 Python
pytorch中交叉熵损失(nn.CrossEntropyLoss())的计算过程详解
Jan 02 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
Python如何实现远程方法调用
Aug 07 Python
10款最佳Python开发工具推荐,每一款都是神器
Oct 15 Python
如何利用Python写个坦克大战
Nov 18 Python
Flask中jinja2的继承实现方法及实例
Mar 03 Python
python dict 字典 以及 赋值 引用的一些实例(详解)
Jan 20 #Python
Python使用中文正则表达式匹配指定中文字符串的方法示例
Jan 20 #Python
python 查找字符串是否存在实例详解
Jan 20 #Python
python django 访问静态文件出现404或500错误
Jan 20 #Python
python中实现迭代器(iterator)的方法示例
Jan 19 #Python
Python正则替换字符串函数re.sub用法示例
Jan 19 #Python
Python中二维列表如何获取子区域元素的组成
Jan 19 #Python
You might like
JpGraph php柱状图使用介绍
2011/08/23 PHP
thinkphp的c方法使用示例
2014/02/24 PHP
php判断数组元素中是否存在某个字符串的方法
2014/06/14 PHP
Thinkphp5结合layer弹窗定制操作结果页面
2017/07/07 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
实现png图片和png背景透明(支持多浏览器)的方法
2009/09/08 Javascript
6款经典实用的jQuery小插件及源码(对话框/提示工具等等)
2013/02/04 Javascript
JavaScript中的变量定义与储存介绍
2014/12/31 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
JavaScript实现的搜索及高亮显示功能示例
2017/08/14 Javascript
JavaScript实现图片本地预览功能【不用上传至服务器】
2017/09/20 Javascript
微信小程序实现团购或秒杀批量倒计时
2020/11/01 Javascript
JavaScript数组基于交换的排序示例【冒泡排序】
2018/07/21 Javascript
微信公众号平台接口开发 菜单管理的实现
2019/08/14 Javascript
在VUE中实现文件下载并判断状态的方法
2019/11/08 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[01:14:05]《加油DOTA》第四期
2014/08/25 DOTA
Django中间件实现拦截器的方法
2018/06/01 Python
基于anaconda下强大的conda命令介绍
2018/06/11 Python
python调用外部程序的实操步骤
2019/03/04 Python
使用SQLAlchemy操作数据库表过程解析
2020/06/10 Python
python中round函数保留两位小数的方法
2020/12/04 Python
Pycharm 跳转回之前所在页面的操作
2021/02/05 Python
CSS3实现翘边的阴影效果的代码示例
2016/06/13 HTML / CSS
Sneaker Studio乌克兰:购买运动鞋
2018/03/26 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
股东合作协议书
2014/04/14 职场文书
募捐倡议书怎么写
2014/05/14 职场文书
财务会计专业求职信
2014/06/09 职场文书
南京青奥会口号
2014/06/12 职场文书
公司承诺函范文
2015/01/21 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书