2012-08-10 67 views
0

我想解碼使用python中的bdecode庫的bencode格式。我已經在我的python文件夾中導入了bcode庫。當我嘗試使用庫中定義的函數bdecode時。我得到一個錯誤bdecode在Python中的庫不起作用

    File "C:\Python27\fit.py", line 21, in <module> 
       decoded = bdecode(data) 
       NameError: name 'bdecode' is not defined 

任何想法爲什麼這個錯誤發生,我只是新的python?如果這是因爲bcode庫,任何人都可以提交到其他bcode庫的鏈接?

這是我想

   import bcode, urllib, urlparse, string 
      url = "http://update.utorrent.com/installoffer.php?" 
      url = url + "offer=conduit" 

      filename = "out_py.txt" 
      urllib.urlretrieve(url,filename) 

      with open ("out_py.txt", "r") as myfile: 
      data=myfile.readlines() 

      decoded = bdecode(data) 
+0

這是整個.py文件嗎?特別是你用什麼語句來導入bdecode函數? – 2012-08-10 21:34:56

+0

更新了代碼.. – amateur 2012-08-10 21:41:52

回答

1

可以解決兩個之一這個方式,改變你的import語句代碼:

from bcode import bdecode 
import urllib, urlparse, string 

或更改調用函數的行:

decoded = bcode.bdecode(data) 

問題是,當您導入bcode模塊時,您沒有導入任何s在它內部的ymbols到本地命名空間。

+0

進行了更改..我現在得到此錯誤。 – amateur 2012-08-10 22:05:41

+0

文件「C:\ Python27 \ fit.py」,第21行,在 coded = bcode.bdecode(data) bdecode 中的文件「C:\ Python27 \ Lib \ idlelib \ bcode.py」,第155行input = input.strip() AttributeError:'list'對象沒有屬性'strip' – amateur 2012-08-10 22:06:06

+1

使用'data = file_handle.read()' – 2012-08-10 22:14:55