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使用scrapy采集数据过程中放回下载过大页面的方法
Apr 08 Python
Python删除空文件和空文件夹的方法
Jul 14 Python
Python正则表达式教程之一:基础篇
Mar 02 Python
python实现雨滴下落到地面效果
Jun 21 Python
获取python的list中含有重复值的index方法
Jun 27 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
使用Python轻松完成垃圾分类(基于图像识别)
Jul 09 Python
使用Python制作一个打字训练小工具
Oct 01 Python
python文字转语音的实例代码分析
Nov 12 Python
如何使用repr调试python程序
Feb 28 Python
python mysql中in参数化说明
Jun 05 Python
python爬取网页版QQ空间,生成各类图表
Jun 02 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过滤危险html代码
2008/08/18 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php CI框架插入一条或多条sql记录示例
2014/07/29 PHP
php计算2个日期的差值函数分享
2015/02/02 PHP
php通过两层过滤获取留言内容的方法
2016/07/11 PHP
详解JavaScript中的客户端消息框架设计原理
2015/06/24 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
再谈javascript常见错误及解决方法
2016/09/16 Javascript
微信小程序中多个页面传参通信的学习与实践
2017/05/05 Javascript
vue cli2.0单页面title修改方法
2018/06/07 Javascript
layer弹出层全屏及关闭方法
2018/08/17 Javascript
Javascript读取上传文件内容/类型/字节数
2019/04/30 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
node.JS事件机制与events事件模块的使用方法详解
2020/02/06 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
Python实现堆排序的方法详解
2016/05/03 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
2018/03/22 Python
详谈pandas中agg函数和apply函数的区别
2018/04/20 Python
python实现局域网内实时通信代码
2019/12/22 Python
Python 调用有道翻译接口实现翻译
2020/03/02 Python
python实现猜数游戏
2020/03/27 Python
浅谈Selenium+Webdriver 常用的元素定位方式
2021/01/13 Python
6种非常炫酷的CSS3按钮边框动画特效
2016/03/16 HTML / CSS
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
美国知名生活购物网站:Goop
2017/11/03 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
澳大利亚先进的皮肤和激光诊所购物网站:Soho Skincare
2018/10/15 全球购物
安全检查与奖惩制度
2014/01/23 职场文书
优秀党员先进材料
2014/12/18 职场文书
龙潭大峡谷导游词
2015/02/10 职场文书
放射科岗位职责
2015/02/14 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python