2011-05-29 44 views
2

我是python和bencoding的新手。我需要使用python讀寫我的項目的torrent文件。我已經導入模塊,這裏是我的代碼來解析洪流:​​使用BitTorrent的bencoding-bencode 5.0.8.1

這裏的鏈接到我的模塊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) 

如果我理解正確的話這將引發無效B編碼字符串錯誤 國防部,bdecode函數一次只需要一個值,但我該如何解析torrent文件?或...

回答

10

問題是Bencoded文件不是面向行的文件。你在做什麼就像拿一份報告,穿過碎紙機,並把它交給你的老闆一次撕碎。這是解碼Bencoded文件的正確方法:

import bencode 
print bencode.bdecode(open('file.torrent', 'rb').read()) 
+0

工作得很好。謝謝。所以這是傳遞一個緩衝區到bdecode函數? – Birla 2011-05-29 14:37:01

+0

我在年齡方面還沒有使用2.x,但在3.x中,我們稱它爲「字節」對象。 – 2011-05-29 16:39:29