[PYTHON] Lire les fichiers CSV chargés dans Flask sans les enregistrer

La procédure de sauvegarde du fichier téléchargé par la méthode save () sur le serveur dans la documentation officielle Uploading Files - Flask Documentation etc. Bien qu'il ait été introduit, je n'ai pas pu trouver un moyen de le lire tel quel sans enregistrer le fichier, je vais donc le laisser sous forme de mémorandum.

Sa substance est un flux binaire tampon

Dans Flask request.files.get () (ou request.files.getlist () [i] Exécuter ) vous donnera un objet Werkzeug datastructures.FileStorage. Le flux de cet objet est le corps de flux du fichier téléchargé. De plus, FileStorage.stream semble hériter de ʻio.BufferedIOBase`, donc ce flux devrait être bouilli. Il semble qu'il devrait être cuit.

Lire le CSV téléchargé

Si vous souhaitez lire le fichier téléchargé sous forme de texte, il est pratique d'en faire un flux de texte avec ʻio.TextIOWrapper`. ..

Voici un exemple qui lit un fichier CSV téléchargé depuis un client.

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='Veuillez spécifier un fichier'), 400
    elif 'text/csv' != filebuf.mimetype:
        return jsonify(message='Seuls les fichiers CSV seront acceptés'), 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}Chargé'), 200

Recommended Posts

Lire les fichiers CSV chargés dans Flask sans les enregistrer
Comment lire des fichiers CSV avec Pandas
Convertir des fichiers CSV UTF-8 pour les lire dans Excel
2 façons de lire tous les fichiers csv dans un dossier
[R] [Python] Memo pour lire plusieurs fichiers csv dans plusieurs fichiers zip
Utilisez Flask pour exécuter des fichiers externes
Lire tous les fichiers csv dans le dossier
Lire et écrire des fichiers csv avec numpy
Lire Python csv et exporter vers txt
[Introduction à Pandas] Lire un fichier csv sans nom de colonne et lui donner un nom de colonne
Comment lire un fichier CSV avec Python 2/3
Je veux visualiser les fichiers csv en utilisant Vega-Lite!
Comment lire un csv contenant uniquement des entiers en Python