2345软件资讯
当前位置: 首页 > IT业界 > 正文

Bit Torrent磁力链接怎么Python解析?附代码介绍

摘要:

本文实例讲述了Python实现解析BitTorrent种子文件内容的方法。分享给大家供大家参考,具体如下:

  本文实例讲述了Python实现解析BitTorrent种子文件内容的方法。分享给大家供大家参考,具体如下:

  有很多种子文件,有时候记不清里面都是什么东西,又不想一个一个的拖放到迅雷或BT软件里头看,

  上网查了一下Python的脚本,自己也稍微修改了一下,代码如下,粘贴到文本编辑器中:

  保存成py后缀的,直接运行

  注意要保存成Utf-8格式的文件,不能使用ASCII编码格式保存,否则中文会乱码或无法编译

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
importre
deftokenize(text, match=re.compile("([idel])|(/d+):|(-?/d+)").match):
 i=0
 whilei <len(text):
  m=match(text, i)
  s=m.group(m.lastindex)
  i=m.end()
  ifm.lastindex==2:
   yield"s"
   yieldtext[i:i+int(s)]
   i=i+int(s)
  else:
   yields
defdecode_item(next, token):
 iftoken=="i":
  # integer: "i" value "e"
  data=int(next())
  ifnext() !="e":
   raiseValueError
 eliftoken=="s":
  # string: "s" value (virtual tokens)
  data=next()
 eliftoken=="l"ortoken=="d":
  # Container: "l" (or "d") values "e"
  data=[]
  tok=next()
  whiletok !="e":
   data.append(decode_item(next, tok))
   tok=next()
  iftoken=="d":
   data=dict(zip(data[0::2], data[1::2]))
 else:
  raiseValueError
 returndata
defdecode(text):
 try:
  src=tokenize(text)
  data=decode_item(src.next, src.next())
  fortokeninsrc:# look for more tokens
   raiseSyntaxError("trailing junk")
 except(AttributeError, ValueError, StopIteration):
  raiseSyntaxError("syntax error")
 returndata
if__name__=="__main__":
#需要读取的文件名称放到这里
 data=open("The_Shawshank_Redemption.torrent","rb").read()
 torrent=decode(data)
 myfile=file("testit.txt",'w')
 a=u'文件名称'.encode('gbk')
 b=u'文件大小'.encode('gbk')
 print"%s /t %s /n"%(a,b)
 forfileintorrent["info"]["files"]:
  print"%s /t %d Mb "%("/".join(file["path"]),file["length"]/1024/1024)
  print"-----------------------------------------------------------------"

  • 腾讯视频 (原QQLive) 2017 V10.11.2585.0 正式版 立即下载


今日最热资讯本周最热资讯

本月最热资讯