2016-12-12 154 views
2

感覺像一個笨蛋。我試圖與一個zip文件交互,似乎無法使用zipfile庫。相當新的蟒蛇無法導入python庫'zipfile'

from zipfile import * 
#set filename 
fpath = '{}_{}_{}.zip'.format(strDate, day, week) 

#use zipfile to get info about ftp file 
zip = zipfile.Zipfile(fpath, mode='r') 
# doesn't matter if I use  
#zip = zipfile.Zipfile(fpath, mode='w') 
#or zip = zipfile.Zipfile(fpath, 'wb') 

如果我只是用進口壓縮文件我得到這個錯誤,我得到這個錯誤

zip = zipfile.Zipfile(fpath, mode='r')

NameError: name 'zipfile' is not defined

TypeError: 'module' object is not callable

+0

with'from zipfile import *',你必須使用沒有前綴的'ZipFile'。對於另一個錯誤,我認爲有一個錯誤的地方,它應該工作(你打電話給你的文件'zipfile.py'?這不是一個好主意) –

+0

如果我不使用前綴我得到:NameError:名稱'zipfile'未定義 –

+0

我無法繼續聊天,因爲我的防火牆不允許在這裏,但我想你說「謝謝你的工作」:)這很好! –

回答

3

兩種方式來解決這個問題:

1)使用from,並在這種情況下刪除zipfile名稱空間:

from zipfile import * 
#set filename 
fpath = '{}_{}_{}.zip'.format(strDate, day, week) 

#use zipfile to get info about ftp file 
zip = ZipFile(fpath, mode='r') 

2)使用直接import,在這種情況下,像你這樣使用完整路徑:

import zipfile 
#set filename 
fpath = '{}_{}_{}.zip'.format(strDate, day, week) 

#use zipfile to get info about ftp file 
zip = zipfile.ZipFile(fpath, mode='r') 

,並有一個在你的代碼偷偷摸摸錯字:Zipfile應該ZipFile(資本F,所以我感覺回答稍差......

所以得到的教訓是:

  • 避免from x import y,因爲編輯難以用詞
  • 和合適的import zipfile以及一個提議完成的編輯器來完成,所以您永遠不會有這個問題。
+0

我剝奪了我所有的代碼,並從zip文件導入*' '#SET filename' 'fpath使用以下 '=「C:\\ \\用戶\\ Databoe下載\\ 20161206_Tue_49.zip' '#use zipfile獲取關於ftp文件的信息' 'zip = Zipfile(fpath,mode ='r')' 'zip.getinfo()' 'zip.close' 這給了我錯誤:「NameError :name'Zipfile'未定義' –

+0

和AttributeError:'module'對象沒有屬性'Zipfile' 當我使用'import zipfile'和'zipfile.Zipfile'時 –

+0

沒有調用你的模塊'zipfile.py'偶然? –