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分割TXT文件成4K的TXT文件
May 23 Python
跟老齐学Python之大话题小函数(2)
Oct 10 Python
详解Python字符串对象的实现
Dec 24 Python
Python中绑定与未绑定的类方法用法分析
Apr 29 Python
python flask实现分页效果
Jun 27 Python
Python设计模式之观察者模式简单示例
Jan 10 Python
用PyInstaller把Python代码打包成单个独立的exe可执行文件
May 26 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
Python unittest框架操作实例解析
Apr 13 Python
理解深度学习之深度学习简介
Apr 14 Python
在Django中使用MQTT的方法
May 10 Python
jupyter notebook保存文件默认路径更改方法汇总(亲测可以)
Jun 09 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+mysql保存和输出文件
2006/10/09 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
详解PHP原生DOM对象操作XML的方法
2016/10/17 PHP
PHP异常处理定义与使用方法分析
2017/07/25 PHP
Thinkphp 框架配置操作之动态配置、扩展配置及批量配置实例分析
2020/05/15 PHP
原生js实现shift/ctrl/alt按键的获取
2013/04/08 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
extJS中常用的4种Ajax异步提交方式
2014/03/07 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
纯jquery实现模仿淘宝购物车结算
2015/08/20 Javascript
jQuery插件学习教程之SlidesJs轮播+Validation验证
2016/07/12 Javascript
JavaScript 中调用 Kotlin 方法实例详解
2017/06/09 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
浅谈webpack-dev-server的配置和使用
2018/05/17 Javascript
layui table设置某一行的字体颜色方法
2019/09/05 Javascript
Python中使用PIL库实现图片高斯模糊实例
2015/02/08 Python
python简单实现旋转图片的方法
2015/05/30 Python
Python判断直线和矩形是否相交的方法
2015/07/14 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
Python字典常见操作实例小结【定义、添加、删除、遍历】
2019/10/25 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
python更新数据库中某个字段的数据(方法详解)
2020/11/18 Python
Html5+CSS3+EL表达式问题小结
2020/12/19 HTML / CSS
美国最好的保健品打折网店:Swanson
2017/08/04 全球购物
Tiqets英国:智能手机上的文化和娱乐门票
2019/07/10 全球购物
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
岗位竞聘演讲稿
2014/01/10 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
保密工作实施方案
2014/02/24 职场文书
老人节标语大全
2014/10/08 职场文书
清洁工个人总结
2015/03/04 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
MySQL触发器的使用
2021/05/24 MySQL
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android