使用BitTorrent-bencode 5.0.8.1进行Python B编码

2 投票
1 回答
3531 浏览
提问于 2025-04-16 18:33

我刚开始学习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())

撰写回答