Warum sollen denn Daten an ein Verb im Präteritum gebunden werden. Konsequent angewandt würden dann so ulkige Sachen wie ``instantiated = ElaborateClassName()`` raus kommen.snafu hat geschrieben:Naja, für die Daten, die man hat, würde ich dann eher das Präteritum "downloaded" verwenden.
Korrekter Weg um stdout stummzustellen
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Meinst du, sowas wie "begin_from" würde hier eher passen? Im Grunde sage ich damit ja dem Server, ab wo er den Download starten soll. Andererseits bezeichnet es aber auch die Bytes, die vom letzten Mal schon da sind. Obwohl, an sich wäre "begin_from" vielleicht echt das Beste. Oder vielleicht auch "start_at_byte"...
Es ist schon bezeichnend, wenn man über die Namensgebung in der Lösung fast schon länger diskutiert als über das eigentliche Problem ...
Warum? Das ist doch bereits gelöst.lunar hat geschrieben:Es ist schon bezeichnend, wenn man über die Namensgebung in der Lösung fast schon länger diskutiert als über das eigentliche Problem ...
`offset` gefällt mir auch (hatte `start` oder `start_at` im Sinn, aber Letzteres ist mehr ein Name für ein Datenbank-Feld), aber `url` für `data`? Wie wäre es mit `content`? `received` ginge ähnlich `downloaded` auch - beides könnte aber auch die Menge in Bytes oder ein Boolean (ja, ok) sein. Passend wäre dann wieder `received_data` oder `data_downloaded`. Und das ist dann von meinem Erstvorschlag auch nicht mehr weit entfernt.
lunar: Gute Namenwahl macht guten Programmcode aus, warum sollte man da nicht ausführlich drüber elaborieren? Wo lernt man es sonst?
lunar: Gute Namenwahl macht guten Programmcode aus, warum sollte man da nicht ausführlich drüber elaborieren? Wo lernt man es sonst?
@snafu: "offset" würde ich in diesem Fall als "Versatz" übersetzen. Das ist der technische Begriff der für so etwas in der Informatik verwendet wird. Eine Anzahl Bytes oder Elemente, die zu einem bestimmten Index dazu gezählt wird. Wenn kein Index angegeben wird, dann ist in der Regel der Anfang gemeint.
Achso, das war mir nicht bekannt. Bin ja eigentlich nicht vom Fach. Gut, dann weiß ich ja jetzt welche beiden Sachen ich nehme. Und an die Funktion werde ich "bufsize" übergeben, würd ich sagen.BlackJack hat geschrieben:@snafu: "offset" würde ich in diesem Fall als "Versatz" übersetzen. Das ist der technische Begriff der für so etwas in der Informatik verwendet wird. Eine Anzahl Bytes oder Elemente, die zu einem bestimmten Index dazu gezählt wird. Wenn kein Index angegeben wird, dann ist in der Regel der Anfang gemeint.
Code: Alles auswählen
from __future__ import with_statement
from os.path import getsize
from urllib2 import Request, urlopen
def download(url, outfile, bufbytes=1048576):
with open(outfile, 'a') as f:
offset = getsize(outfile)
request = Request(url)
request.add_header('Range', 'bytes=%d-' % offset)
content = urlopen(request)
while True:
buf = content.read(bufbytes)
if buf == '':
break
f.write(buf)
Wieso legen alle meine Bemerkung so negativ aus? Ich finde es einfach nur erstaunlich, wie viel Wert auf "guten" Stil gelegt wird, dass man über einfache Namen so lange Diskussionen führen kann In Perl-Foren würde man höchstens über den kürzesten Hack reden ...