使用BitTorrent-bencode 5.0.8.1进行Python B编码
我刚开始学习Python和bencoding。我需要用Python来读取和写入种子文件,这是我项目的一部分。我已经导入了相关模块,下面是我用来解析种子文件的代码:
这是我模块的链接 http://paste2.org/p/1442120,这个模块是对 http://pypi.python.org/pypi/BitTorrent-bencode/5.0.8.1 的一个修改版。
import sys
from bencode import *
f = open('file.torrent','rb') #binary read write
for line in f:
print line,
print bdecode(line)
但是这段代码出现了“无效的bencoded字符串”错误。如果我理解得没错,bdecode函数一次需要一个值,但我该如何解析种子文件呢?或者……
1 个回答
10
这个问题在于Bencoded文件不是按行来处理的文件。你现在的做法就像是把一份报告撕成碎片,然后一片一片地交给你的老板。这种方法是不对的。下面是正确解码Bencoded文件的方法:
import bencode
print bencode.bdecode(open('file.torrent', 'rb').read())