私はウェブサイトからファイルをダウンロードして解凍する必要があります。ここに私が使用しているコードはあります:Python:有効な.zipファイルをダウンロードするクロスプラットフォームコード
#!/usr/bin/python
#geoipFolder = r'/my/folder/path/ ' #Mac/Linux folder path
geoipFolder = r'D:\my\folder\path\ ' #Windows folder path
geoipFolder = geoipFolder[:-1] #workaround for Windows escaping trailing quote
geoipName = 'GeoIPCountryWhois'
geoipURL = 'http://geolite.maxmind.com/download/geoip/database/GeoIPCountryCSV.zip'
import urllib2
response = urllib2.urlopen(geoipURL)
f = open('%s.zip' % (geoipFolder+geoipName),"w")
f.write(repr(response.read()))
f.close()
import zipfile
zip = zipfile.ZipFile(r'%s.zip' % (geoipFolder+geoipName))
zip.extractall(r'%s' % geoipFolder)
このコードはMacとLinuxのボックスでは動作しますが、Windowsでは動作しません。そこに.zipファイルが書き込まれますが、スクリプトはこのエラーをスローします。
zipfile.BadZipfile: File is not a zip file
Windowsエクスプローラを使用してファイルを解凍することはできません。それはそう言います:
The compressed (zipped) folder is empty.
しかし、ディスク上のファイルは6MBです。
私はWindowsで間違っていると思っていますか?
おかげ
「urlopen」を混乱させる必要はないでしょう。あなたは単に 'urlretrieve(URL、path_to_file)'を使うことができます。 – ForceBru