Skip to content
Tutoriels
Streamlit
Streamlit Upload File: Maîtriser le téléchargement et l'affichage de fichiers avec Python

Streamlit Upload File: Maîtriser le téléchargement et l'affichage de fichiers avec Python

Bienvenue dans le monde de Streamlit, un framework Python rendant la création d'applications web aussi facile qu'une brise. Une fonctionnalité importante dont Streamlit se vante est son système de téléchargement de fichiers efficace, que nous détaillerons de manière exhaustive dans ce guide.

La fonctionnalité de téléchargement de fichiers dans n'importe quelle application Web est une fonctionnalité essentielle qui permet l'interaction avec les utilisateurs. Elle permet aux utilisateurs de saisir leurs données pour différentes raisons, telles que l'analyse de données, le traitement d'images ou la conversion de fichiers. Dans le contexte de Streamlit, la fonctionnalité de téléchargement de fichiers revêt une importance supplémentaire. Elle permet aux scientifiques des données et aux passionnés d'apprentissage automatique de manipuler, visualiser et interagir directement avec leurs ensembles de données. Plongeons dans les rouages internes de la fonctionnalité de téléchargement de fichiers de Streamlit et explorons tout son potentiel.

Vous souhaitez créer une application d'analyse de données et de visualisation de données dans Streamlit gratuitement ?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à incorporer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit en toute simplicité. Consultez cette incroyable vidéo produite par Sven de Coding is Fun (opens in a new tab) qui montre les étapes détaillées pour donner à votre application Streamlit la puissance de cette puissante bibliothèque de visualisation de données Python !


Un grand merci à Sven et sa formidable contribution (opens in a new tab) à la communauté PyGWalker !

Vous pouvez également consulter la page GitHub de PyGWalker (opens in a new tab) pour plus d'exemples de PyGWalker.

Widget de téléchargement de fichiers Streamlit : Votre porte d'entrée vers le téléchargement de fichiers

Vous vous demandez ce qu'est un widget de téléchargement de fichiers Streamlit ? C'est un composant unique que Streamlit offre pour rendre le téléchargement de fichiers un processus fluide. Le widget de téléchargement de fichiers fournit une interface interactive où les utilisateurs peuvent télécharger leurs fichiers d'un simple clic.

Dans une application Streamlit, implémenter un widget de téléchargement de fichiers est un jeu d'enfant. La fonction streamlit.file_uploader fait tout le travail lourd. Fournissez simplement une chaîne d'argument qui est le titre du téléchargeur de fichiers.

Voici un exemple rapide :

import streamlit as st
 
uploaded_file = st.file_uploader("Choisissez un fichier CSV", type='csv')

Dans le code ci-dessus, "Choisissez un fichier CSV" est le titre du téléchargeur de fichiers et type='csv' restreint le type de fichier aux fichiers CSV.

Comment télécharger un fichier dans Streamlit : Révélation du processus

Télécharger un fichier dans Streamlit est un jeu d'enfant grâce à la simplicité et à la convivialité de la bibliothèque. Le fichier téléchargé est stocké en mémoire en tant que fichier temporaire et vous pouvez le manipuler comme n'importe quel autre objet fichier.

Streamlit prend en charge une multitude de types de fichiers, notamment, mais sans s'y limiter, les images, le son, la vidéo, les fichiers CSV et PDF. Comprenez le processus de téléchargement de fichiers avec un exemple plus complet.

import streamlit as st
 
uploaded_file = st.file_uploader("Choisissez votre fichier", type=['csv', 'png', 'jpg'])
if uploaded_file is not None:
    # Pour lire le fichier en tant qu'octets :
    bytes_data = uploaded_file.getvalue()
    st.write(bytes_data)
    
    # Pour convertir en un IO basé sur les chaînes de caractères :
    stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
    st.write(stringio)
    
    # Pour lire le fichier en tant que chaîne de caractères :
    string_data = stringio.read()
    st.write(string_data)

Dans cet exemple, nous avons étendu les types de fichiers aux fichiers CSV, PNG et JPG. Une fois le fichier téléchargé, vous pouvez le lire soit en tant qu'octets, le convertir en IO basé sur les chaîne de caractères, ou le lire directement en tant que chaîne de caractères.

Afficher le fichier téléchargé : Des données à la visualisation

La joie de télécharger un fichier se manifeste réellement lorsque vous pouvez utiliser ce fichier pour des traitements et des visualisations ultérieurs. Alors, comment afficher le fichier téléchargé dans Streamlit ? La réponse est plus simple que vous ne le pensez.

Supposons que vous avez téléchargé un fichier CSV et que vous souhaitez le visualiser sous forme de tableau de données à l'aide de Pandas. Voici comment vous pouvez le faire :

import streamlit as st
import pandas as pd
 
uploaded_file = st.file_uploader("Téléchargez un fichier CSV", type='csv')
if uploaded_file is not None:
    data = pd.read_csv(uploaded_file)
    st.write(data)

Ce code affichera directement le tableau de données dans votre application Streamlit, vous permettant de procéder à la manipulation ou à la visualisation des données.

Gestion de plusieurs téléchargements de fichiers : La puissance des données en vrac

Maintenant que nous avons maîtrisé les téléchargements de fichiers individuels, passons à l'étape supérieure. Pouvez-vous télécharger plusieurs fichiers dans Streamlit ? Absolument ! Cette fonctionnalité peut être particulièrement utile lorsque vous travaillez avec plusieurs ensembles de données, des images en vrac, des fichiers audio, etc.

Pour télécharger plusieurs fichiers, il suffit de définir le paramètre accept_multiple_files sur True dans la fonction st.file_uploader.

import streamlit as st
 
uploaded_files = st.file_uploader("Choisissez vos fichiers", accept_multiple_files=True)
for uploaded_file in uploaded_files:
    st.write(uploaded_file.name)

Lorsque vous téléchargez plusieurs fichiers, vous devez être conscient de la limite de taille de téléchargement de fichiers de Streamlit. Par défaut, Streamlit autorise un téléchargement maximum de 200 Mo. Cependant, vous pouvez modifier cette limite dans le fichier de configuration de Streamlit. Voici les quatre premières parties de notre guide couvertes ! Nous avons vu comment Streamlit nous permet d'effectuer facilement des téléchargements de fichiers, que ce soit pour un fichier unique ou plusieurs fichiers. Mais nous ne nous arrêtons pas là ! Restez à l'écoute tandis que nous explorons des sujets avancés tels que la validation, la sécurité et plus encore, dans les prochaines parties de notre guide.

Barre de progression de téléchargement de fichiers Streamlit : suivez vos téléchargements

Maintenant que nous avons abordé les téléchargements de plusieurs fichiers, vous vous demandez peut-être s'il existe un moyen de suivre le processus de téléchargement. Streamlit a également pensé à cela avec la barre de progression de téléchargement de fichiers Streamlit. Elle s'affiche automatiquement pendant le téléchargement de fichiers, donnant aux utilisateurs des commentaires en temps réel sur le processus de téléchargement. Tout cela est géré en interne par Streamlit, donc aucun code supplémentaire n'est requis de votre côté !

Sujets avancés en matière de téléchargement de fichiers

Ensuite, plongeons dans quelques sujets avancés liés aux téléchargements de fichiers avec Streamlit, en commençant par la validation de téléchargement de fichiers.

Validation de téléchargement de fichiers Streamlit

Vous pouvez avoir besoin de vérifier le type ou la taille du fichier téléchargé pour vous assurer qu'il convient à votre application. Ce processus est appelé validation de téléchargement de fichiers. Avec Streamlit, vous pouvez définir le paramètre type dans la fonction st.file_uploader pour limiter les types de fichiers pouvant être téléchargés.

De plus, vous pouvez mettre en place des vérifications de validation personnalisées après le téléchargement du fichier. Par exemple, vous pouvez vérifier le contenu d'un fichier CSV pour vous assurer qu'il contient les colonnes requises.

Sécurité des téléchargements de fichiers Streamlit

La sécurité est une préoccupation primordiale lors du traitement des téléchargements de fichiers. La bonne nouvelle est que Streamlit prend la sécurité au sérieux. Tous les fichiers téléchargés sont stockés en mémoire, et non sur le disque. Lorsque le script se réexécute, Streamlit supprime les anciens fichiers téléchargés. Cependant, il est toujours conseillé de mettre en place des mesures de sécurité supplémentaires en fonction de votre cas d'utilisation spécifique.

Téléchargement de fichiers Streamlit vers S3

Si vous souhaitez stocker les fichiers téléchargés pour une utilisation ultérieure, vous pouvez envisager de les télécharger vers un service de stockage comme AWS S3. Bien que Streamlit ne fournisse pas de fonction intégrée à cet effet, c'est facile à réaliser avec la bibliothèque boto3. Une fois que vous avez l'objet fichier provenant de st.file_uploader, vous pouvez le télécharger vers S3.

Téléchargement de fichiers Streamlit vers une base de données

De même, vous pouvez vouloir stocker les fichiers téléchargés ou leurs données directement dans une base de données. Une fois que le fichier est téléchargé vers Streamlit, vous pouvez le traiter et enregistrer les données dans votre base de données en utilisant la bibliothèque Python appropriée pour votre base de données.

Téléchargement de fichiers Streamlit dans le domaine de l'apprentissage automatique

Dans le contexte des projets d'apprentissage automatique, la fonctionnalité de téléchargement de fichiers de Streamlit brille de mille feux. Elle permet aux utilisateurs de télécharger directement des ensembles de données dans l'application. Vous pouvez ensuite traiter les données, construire des modèles, faire des prédictions et même afficher les résultats, le tout dans l'application !

Par exemple, un utilisateur peut télécharger une image, que modèle d'apprentissage automatique traite ensuite pour identifier des objets ou classer l'image. Les possibilités sont vastes et passionnantes !

Conclusion

Dans ce guide complet, nous avons découvert le potentiel de la fonctionnalité de téléchargement de fichiers de Streamlit. Des bases du téléchargement d'un seul fichier, en passant par la gestion de plusieurs fichiers, jusqu'à l'examen de sujets avancés tels que la validation et la sécurité, nous avons tout couvert. Nous avons même abordé l'intégration du téléchargement de fichiers Streamlit avec AWS S3 et les bases de données. Avec ces outils à votre disposition, vous êtes bien équipé pour créer des applications web captivantes et interactives avec Streamlit.

Avez-vous entendu parler de cet outil formidable d'analyse de données et de visualisation de données, qui transforme votre application Streamlit en Tableau ?

PyGWalker (opens in a new tab) est une bibliothèque Python qui vous aide à intégrer facilement une interface utilisateur similaire à Tableau dans votre propre application Streamlit sans effort.

PyGWalker pour la visualisation de données dans Streamlit (opens in a new tab)

Questions fréquemment posées

1. Comment puis-je télécharger des fichiers vers Streamlit ?

Vous pouvez télécharger des fichiers vers Streamlit en utilisant la fonction st.file_uploader. Cette fonction fournit un widget dans votre application Streamlit à travers lequel les utilisateurs peuvent télécharger leurs fichiers.

2. Où Streamlit stocke-t-il les fichiers téléchargés ?

Streamlit stocke les fichiers téléchargés en mémoire, et non sur le disque. Ces fichiers sont traités comme des fichiers temporaires et sont supprimés lorsque le script se réexécute.

3. Comment puis-je télécharger un fichier d'API ?

La fonction st.file_uploader de Streamlit peut gérer tout type de fichier, y compris les fichiers d'API. Une fois le fichier téléchargé, vous pouvez le traiter selon vos besoins.

4. Quelle est la taille maximale de téléchargement pour Streamlit ?

Par défaut, Streamlit permet une taille maximale de téléchargement de 200MB. Cependant, cette limite peut être modifiée dans le fichier de configuration de Streamlit.