[PYTHON] Lesen Sie CSV-Dateien, die in Flask hochgeladen wurden, ohne sie zu speichern

Das Verfahren zum Speichern der Datei, die mit der Methode "save ()" auf den Server hochgeladen wurde, in der offiziellen Dokumentation Hochladen von Dateien - Flask-Dokumentation usw. Obwohl es eingeführt wurde, konnte ich keine Möglichkeit finden, es so zu lesen, wie es ist, ohne die Datei zu speichern, daher werde ich es als Memorandum belassen.

Seine Substanz ist ein puffernder binärer Strom

In Flask request.files.get () (oder request.files.getlist () [i] Wenn Sie ) ausführen, erhalten Sie ein Werkzeug-Objekt (http://werkzeug.pocoo.org/docs/0.12/datastructures/#werkzeug.datastructures.FileStorage). Der "Stream" dieses Objekts ist der Stream-Body der hochgeladenen Datei. Darüber hinaus scheint "FileStorage.stream" "io.BufferedIOBase" zu erben, daher sollte dieser Stream gekocht werden. Es scheint, dass es gebacken werden sollte.

Lesen Sie die hochgeladene CSV

Wenn Sie die hochgeladene Datei als Text lesen möchten, können Sie sie bequem mit io.TextIOWrapper zu einem Textstrom machen. ..

Hier ist ein Beispiel, das eine von einem Client hochgeladene CSV-Datei liest.

import io

from flask import Flask, jsonify, request


@app.route('/upload/', methods=['POST'])
def csv_upload():
    filebuf = request.files.get('csvfile')
    if filebuf is None:
        return jsonify(message='Bitte geben Sie eine Datei an'), 400
    elif 'text/csv' != filebuf.mimetype:
        return jsonify(message='Es werden nur CSV-Dateien akzeptiert'), 415

    text_stream = io.TextIOWrapper(filebuf.stream, encoding='cp932')
    for row in csv.reader(text_stream):
        # do something

    return jsonify(message=f'{filebuf.filename!r}Geladen'), 200

Recommended Posts

Lesen Sie CSV-Dateien, die in Flask hochgeladen wurden, ohne sie zu speichern
Lesen von CSV-Dateien mit Pandas
Konvertieren Sie UTF-8-CSV-Dateien in Excel
2 Möglichkeiten, alle CSV-Dateien in einem Ordner zu lesen
[R] [Python] Memo zum Lesen mehrerer CSV-Dateien in mehreren Zip-Dateien
Verwenden Sie Flask, um externe Dateien auszuführen
Lesen Sie alle CSV-Dateien im Ordner
Lesen und Schreiben von CSV-Dateien mit Numpy
Lesen Sie Python csv und exportieren Sie es nach txt
[Einführung in Pandas] Lesen Sie eine CSV-Datei ohne Spaltennamen und geben Sie ihr einen Spaltennamen
Lesen einer CSV-Datei mit Python 2/3
Ich möchte CSV-Dateien mit Vega-Lite visualisieren!
Lesen von CSVs, die in Python nur Ganzzahlen enthalten