我有一個非常簡單的腳本,它使用urllib來檢索zip文件並將其放在我的桌面上。該zip文件只有幾MB大小,並且不需要很長時間下載。然而,腳本似乎並沒有完成,它只是掛起。有沒有辦法強行關閉urlretrieve?或者更好的解決方案?urlretrieve在下載文件時掛起
該URL是公用的ftp大小。 ftp也許是原因?
我使用python 2.7.8。
url = r'ftp://ftp.ngs.noaa.gov/pub/DS_ARCHIVE/ShapeFiles/IA.ZIP'
zip_path = r'C:\Users\***\Desktop\ngs.zip'
urllib.urlretrieve(url, zip_path)
在此先感謝!
---編輯---
能夠使用FTPLIB來完成任務......
import os
from ftplib import FTP
import zipfile
ftp_site = 'ftp.ngs.noaa.gov'
ftp_file = 'IA.ZIP'
download_folder = '//folder to place file'
download_file = 'name of file'
download_path = os.path.join(download_folder, download_file)
# Download file from ftp
ftp = FTP(ftp_site)
ftp.login()
ftp.cwd('pub/DS_ARCHIVE/ShapeFiles') #change directory
ftp.retrlines('LIST') #show me the files located in directory
download = open(download_path, 'wb')
ftp.retrbinary('RETR ' + ftp_file, download.write)
ftp.quit()
download.close()
# Unzip if .zip file is downloaded
with zipfile.ZipFile(download_path, "r") as z:
z.extractall(download_folder)
我無法將它作爲'nodename或servername提供或不知道的'' – ForceBru
您是否故意將regexp用於url和zip_path而不是字符串? –
@EriksDobelis不確定你的意思是...?我相當新的python,所以不知道差異... –