Python 解析torrent文件信息()

#-*- coding:utf-8 -*-
import time
from bencode import bdecode
class Parser(object):
    
    def __init__(self,filePath):
        self.path = filePath
        metainfo_file = open(str(self.path), 'rb')
        self.metainfo = bdecode(metainfo_file.read())
       
        metainfo_file.close()
    def getStruct(self):
        print self.metainfo.keys()
 
    #如果是单文件就返回:0
    #如果是多文件就返回:1
    def checkType(self):
        if 'files' in self.metainfo['info']:
            return 1
        else:
            return 0
        
    def getCreationDate(self):
        if 'creation date' in self.metainfo:
            return self.metainfo['creation date']
        else:
            return ''
    
    def getInfo(self):
        return self.metainfo['info'].keys()
 
     #获得文件名
    def getName(self):
      
        info = self.metainfo['info']
 
        if 'name.utf-8' in info:
            filename=info['name.utf-8']
        else:
            filename = info['name']
 
        for c in filename:
            if c=="'":
                filename=filename.replace(c,"\\\'")
        return filename
 
    
    #多文件的情况下,获得所有文件,返回为:dic 
    def getInfoFiles(self):
        return self.metainfo['info']['files']
    
    #返回创建时间
    def getCreatedBy(self):
        if 'created by' in self.metainfo:
            return self.metainfo['created by']
        else:
            return ''
    
    #获得编码方式
    def getEncoding(self):
        if 'encoding' in self.metainfo:
            return self.metainfo['encoding']
        return ""
    
    def getComments(self):
        info = self.metainfo['info']
 
        if 'comment.utf-8' in self.metainfo:
            comment=self.metainfo['comment.utf-8']
            return comment
        else:
            return ''


 
if __name__ == "__main__":
    parser=Parser('98E2E1FAD731FCB2AB3ECFF38BD6B0FE29A8B7ED.torrent')

    print parser.getStruct()
    print parser.getCreationDate()
    print 'creation date:'+time.strftime('%Y-%m-%d',time.localtime(parser.getCreationDate()))
    print 'comments:'+parser.getComments()
    print 'name:'+parser.getName()
    print 'encoding:'+parser.getEncoding()
    print 'created by:'+parser.getCreatedBy()
    print parser.getInfo()
    print parser.checkType()
    print parser.getInfoFiles()

#https://blog.csdn.net/iloster/article/details/24363935

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值