Ich versuche das exception handling zu implementieren. Es kann zu 3 Fehlertypen
kommen.
1. Die Datei ist auf dem Server nicht vorhanden, obwohl diese eigentlich da
sein sollte oder das Datum liegt in der Zukunft.
HTTP Error 404: Not Found
2. Die Datei ist Beschädigt.
CRC check failed 0x64e41a56 != 0x966a8aabL
3. Die Datei ist auf dem Server vorhanden und wird heruntergeladen. Beim Öffnen
der Datei wird festgestellt, das diese bis auf die Tabellenüberschrift leer
ist. Die Größe der Datei beträgt nur 52 Bytes.
Meine Fragen sind:
Angenommen, eine Datei ist auf dem Server nicht vorhanden. Wie geht es weiter,
damit die nächste Datei heruntergeladen und das Programm nicht beendet wird?
Als letzten Schritt möchte ich diese Informationen in das logfile schreiben.
Hier ein Versuch ein Teil des exception handling einzubauen.
Code: Alles auswählen
def pull_file(symbol, year, week):
try:
url = URL_TEMPLATE.format(symbol, year, week)
response = urllib2.urlopen(url)
return response.read()
except urllib2.HTTPError as e:
print(e)
exit(1)
def print_data_length(data):
try:
f = gzip.GzipFile(fileobj=StringIO(data))
length = 0
while True:
block = f.read(1024*1024)
if not block:
break
length += len(block)
print(length)
except IOError as e:
print(e)
exit(1)