Frage

Okey das ist wirklich seltsam. Ich habe dieses Skript, das im Grunde Bündel erreichen Dateien herunterlädt und extrahiert sie. Normalerweise befinden sich diese Dateien sind ZIP-Dateien. Heute setzte ich mich hin und beschlossen, es mit rar-Dateien funktioniert und ich habe fest. Zuerst dachte ich, dass das Problem in meinem unrar-Code ist, aber es war nicht da. Also tat ich:

f = urllib2.urlopen(file_location)
data = StringIO(f.read())
print data.getvalue()

Heck ich auch tat:

f = urllib2.urlopen(file_location)
print f.read()

, weil ich wollte nur die ersten Brocken sehen, und das Ergebnis ist das gleiche. - Ich erste Zeile der Rar-Datei fehlt bin

Wenn ich Web-Browser verwenden die gleiche Datei ist alles in Ordnung zu downloaden, es ist nicht beschädigt.

Kann jemand mir bitte erklären, was zum Teufel hier los? Und was hat es mit dem Dateityp zu tun.

War es hilfreich?

Lösung

Enthalten die Daten vielleicht ein „Carriage Return“ Zeichen ( „\ r“), so dass der erste Block mit nachfolgenden Daten überschrieben wird, wenn Sie versuchen, es zu sehen? Dies würde erklären, warum Sie nicht den ersten Block in der Ausgabe sehen, aber nicht, warum Sie nicht in der Lage, sie zu entschlüsseln später.

Andere Tipps

Beim Versuch, den Inhalt von binärer Datenfolge zu ermitteln, verwenden Sie repr() oder hex() . Zum Beispiel:

>>> print repr(data)
'\x00\x01\x02\x03\x04\x05\x06\x07\x08\t'
>>> print [hex(ord(c)) for c in data]
['0x0', '0x1', '0x2', '0x3', '0x4', '0x5', '0x6', '0x7', '0x8', '0x9']
>>>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top