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中使用PIL库实现图片高斯模糊实例
Feb 08 Python
Python基于二分查找实现求整数平方根的方法
May 12 Python
Python基于identicon库创建类似Github上用的头像功能
Sep 25 Python
python re正则匹配网页中图片url地址的方法
Dec 20 Python
python 检查数据中是否有缺失值,删除缺失值的方式
Dec 02 Python
python飞机大战 pygame游戏创建快速入门详解
Dec 17 Python
Python基础之变量基本用法与进阶详解
Jan 03 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
Python 爬虫的原理
Jul 30 Python
python字典key不能是可以是啥类型
Aug 04 Python
Python之字典对象的几种创建方法
Sep 30 Python
pandas 按日期范围筛选数据的实现
Feb 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
基于mysql的论坛(5)
2006/10/09 PHP
在PHP中使用模板的方法
2008/05/24 PHP
php中socket通信机制实例详解
2015/01/03 PHP
php实现模拟post请求用法实例
2015/07/11 PHP
PHP中empty和isset对于参数结构的判断及empty()和isset()的区别
2015/11/15 PHP
开启PHP的伪静态模式
2015/12/31 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
利用WebBrowser彻底解决Web打印问题(包括后台打印)
2009/06/22 Javascript
优化javascript的执行速度
2010/01/23 Javascript
有关js的变量作用域和this指针的讨论
2010/12/16 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
js拆分字符串并将分割的数据放到数组中的方法
2015/05/06 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
vue中配置mint-ui报css错误问题的解决方法
2017/10/11 Javascript
jquery实现联想词搜索框和搜索结果分页的示例
2018/10/10 jQuery
react koa rematch 如何打造一套服务端渲染架子
2019/06/26 Javascript
使用Python读写文本文件及编写简单的文本编辑器
2016/03/11 Python
Python字符编码判断方法分析
2016/07/01 Python
Python selenium 三种等待方式详解(必会)
2016/09/15 Python
CentOS 7 安装python3.7.1的方法及注意事项
2018/11/01 Python
搭建python django虚拟环境完整步骤详解
2019/07/08 Python
如何利用Python动态模拟太阳系运转
2020/09/04 Python
关于python3.9安装wordcloud出错的问题及解决办法
2020/11/02 Python
css3 transform过渡抖动问题解决
2020/10/23 HTML / CSS
英国顶级珠宝品牌之家:John Greed
2018/06/09 全球购物
娇韵诗法国官网:Clarins法国
2019/01/29 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
战略合作意向书范本
2014/04/01 职场文书
群众路线教育实践活动总结
2014/10/30 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
解析Redis Cluster原理
2021/06/21 Redis
html form表单基础入门案例讲解
2021/07/15 HTML / CSS