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检测字符串中是否包含某字符集合中的字符
May 21 Python
python中enumerate函数遍历元素用法分析
Mar 11 Python
python 读取.csv文件数据到数组(矩阵)的实例讲解
Jun 14 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
对Python实现累加函数的方法详解
Jan 23 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
如何使用Python发送HTML格式的邮件
Feb 11 Python
使用K.function()调试keras操作
Jun 17 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
Django路由层URLconf作用及原理解析
Sep 24 Python
如何基于python实现年会抽奖工具
Oct 20 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
PHP基础陷阱题(变量赋值)
2012/09/12 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
PHP实现在线阅读PDF文件的方法
2015/06/17 PHP
php实现的数字验证码及数字运算验证码
2015/07/30 PHP
javascript 简单高效判断数据类型 系列函数 By shawl.qiu
2007/03/06 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
基于jquery完美拖拽,可返回拖动轨迹
2012/03/29 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
window.location.href的用法(动态输出跳转)
2014/08/09 Javascript
JavaScript常用的返回,自动跳转,刷新,关闭语句汇总
2015/01/13 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
jquery实现浮动在网页右下角的彩票开奖公告窗口代码
2015/09/04 Javascript
Bootstrap实现input控件失去焦点时验证
2016/08/04 Javascript
详解JS中的快速排序与冒泡
2017/01/10 Javascript
微信小程序实战之自定义抽屉菜单(7)
2017/04/18 Javascript
vue父组件中获取子组件中的数据(实例讲解)
2017/09/27 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
js中null与空字符串""的区别讲解
2019/01/17 Javascript
详解vue的数据劫持以及操作数组的坑
2019/04/18 Javascript
浅谈Python生成器generator之next和send的运行流程(详解)
2017/05/08 Python
Python爬取当当、京东、亚马逊图书信息代码实例
2017/12/09 Python
Python爬豆瓣电影实例
2018/02/23 Python
python 获取微信好友列表的方法(微信web)
2019/02/21 Python
python中的itertools的使用详解
2020/01/13 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
详解python os.path.exists判断文件或文件夹是否存在
2020/11/16 Python
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
维也纳通行证:Vienna PASS
2019/07/18 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
Made in Design德国:设计师家具、灯具和装饰
2019/10/31 全球购物
泰国最新活动和优惠:Megatix
2020/05/07 全球购物
自考毕业自我鉴定范文
2013/10/27 职场文书
外贸销售员求职的自我评价
2013/11/23 职场文书
学校中秋节活动总结
2015/03/23 职场文书
go select编译期的优化处理逻辑使用场景分析
2021/06/28 Golang