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中的对象拷贝示例 python引用传递
Jan 23 Python
简单理解Python中的装饰器
Jul 31 Python
Python爬虫抓取手机APP的传输数据
Jan 22 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
python实现音乐下载器
Apr 15 Python
django ModelForm修改显示缩略图 imagefield类型的实例
Jul 28 Python
使用OpenCV实现仿射变换—平移功能
Aug 29 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
python图形界面开发之wxPython树控件使用方法详解
Feb 24 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
python Selenium 库的使用技巧
Oct 16 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 进程锁定问题分析研究
2009/11/24 PHP
php利用事务处理转账问题
2015/04/22 PHP
smarty模板数学运算示例
2016/12/11 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
地址栏上的一段语句,改变页面的风格。(教程)
2008/04/02 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
JQuery给元素添加/删除节点比如select
2013/04/02 Javascript
javaScript对文字按照拼音排序实现代码
2013/12/27 Javascript
jQuery中nextAll()方法用法实例
2015/01/07 Javascript
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
简单的jQuery拖拽排序效果的实现(增强动态)
2017/02/09 Javascript
angularJs的ng-class切换class
2017/06/23 Javascript
解决mpvue + vuex 开发微信小程序vuex辅助函数mapState、mapGetters不可用问题
2018/08/03 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
vue.js 打包时出现空白页和路径错误问题及解决方法
2019/06/26 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[43:47]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第一场 12.09
2020/12/11 DOTA
python使用正则表达式提取网页URL的方法
2015/05/26 Python
python微信好友数据分析详解
2018/11/19 Python
python 接收处理外带的参数方法
2018/12/03 Python
Django中更改默认数据库为mysql的方法示例
2018/12/05 Python
python2和python3在处理字符串上的区别详解
2019/05/29 Python
Python实现代码统计工具
2019/09/19 Python
python多线程案例之多任务copy文件完整实例
2019/10/29 Python
python 创建一维的0向量实例
2019/12/02 Python
Python调用C语言程序方法解析
2020/07/07 Python
html5 canvas手势解锁源码分享
2020/01/07 HTML / CSS
英国厨房与餐具用品为主的设计品牌:Joseph Joseph
2018/04/26 全球购物
可口可乐广告词
2014/03/20 职场文书
个人借款协议书范本
2014/11/17 职场文书
2015商场元旦促销活动策划方案
2014/12/09 职场文书
大学学生个人总结
2015/02/15 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
2019暑期安全倡议书!
2019/06/27 职场文书