Lies eine Datei Zeile für Zeile von S3 mit Boto?

8

Ich habe eine CSV-Datei in S3 und ich versuche, die Kopfzeile zu lesen, um die Größe zu erhalten (diese Dateien werden von unseren Benutzern erstellt, so dass sie fast jede Größe haben können). Gibt es eine Möglichkeit, dies mit Boto zu tun? Ich dachte, ich könnte vielleicht einen Python BufferedReader, aber ich kann nicht herausfinden, wie man einen Stream von einem S3-Schlüssel öffnet. Irgendwelche Vorschläge wären großartig. Danke!

    
gignosko 19.02.2015, 22:42
quelle

4 Antworten

7

Es scheint, dass Boto eine Funktion read() hat, die dies tun kann. Hier ist ein Code, der für mich funktioniert:

%Vor%

Der Aufruf von read(n) gibt die nächsten n Bytes vom Objekt zurück.

Natürlich wird dies nicht automatisch die "Kopfzeile" zurückgeben, aber Sie könnten sie mit einer ausreichend großen Zahl aufrufen, um die Kopfzeile auf ein Minimum zurückzusetzen.

    
John Rotenstein 20.02.2015, 06:54
quelle
14

Sie finden Ссылка nützlich für Ihre Aufgabe.

Aus der Dokumentation:

%Vor%     
Michael Korbakov 28.09.2016 11:13
quelle
2

Hier ist eine Lösung, die die Daten Zeile für Zeile überträgt:

%Vor%     
kooshywoosh 03.02.2018 00:23
quelle
0

Mit boto3 können Sie auf einen Rohdatenstrom zugreifen und Zeile für Zeile lesen. Nur beachten Sie, rohe Stream ist eine private Eigenschaft aus irgendeinem Grund

%Vor%     
robertzp 16.03.2018 03:29
quelle

Tags und Links