[英]Download Zip File from URL using Python
我正在嘗試使用 Requests 模塊從我的 web 服務器下載一個 ZIP 文件。
我嘗試了多種不同的方法,但總是出錯。
我最近的代碼很有希望 - 下載的文件大小(接近)我的預期(不知何故有點多?),但是當嘗試使用 Python 解壓縮文件時,我收到此錯誤:
fp.seek(self.start_dir, 0)
OSError: [Errno 22] Invalid argument
並嘗試使用 Windows 10 打開它,我收到“無效的 ZIP 文件”錯誤。
這是我當前的代碼:
LATEST_PACKAGE = requests.get(NET_URL + "/package.zip")
lp_local = open("%s:/Users/%s/Desktop/package.zip"%(DRIVELETTER, os.getlogin()), "xb")
lp_local.write(bytes(LATEST_PACKAGE.text, "UTF-8"))
lp_local.close()
with ZipFile("%s:/Users/%s/Desktop/package.zip"%(DRIVELETTER, os.getlogin())) as data:
data.extractall(INSTALL_PATH)
data.close()
其中 DRIVELETTER 是 Windows 10 驅動器(在我的例子中是 C:/)。
任何人都可以提供有關此錯誤的任何見解以及任何可能的解決方案嗎?
如果您願意嘗試/使用除“請求”之外的其他東西並且您不需要存儲存檔(只需下載並解壓縮它;如果您需要存儲它,請告訴我),您可以嘗試在下面編寫代碼:
from io import BytesIO
from urllib.request import urlopen
from zipfile import ZipFile
zipurl = 'https://drive.google.com/uc?export=download&id=1yAmFc15GtP52El_RTxl6uqmZZJi-h4BG'
with urlopen(zipurl) as zipresp:
with ZipFile(BytesIO(zipresp.read())) as zfile:
zfile.extractall('*YOUR PATH HERE*')
結果:
注意:如果您需要存儲存檔,請告訴我。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.