Skip to content

Streamlit Datei hochladen: Beherrschen Sie das Hochladen und Anzeigen von Dateien mit Python

Willkommen in der Welt von Streamlit, einem Python-Framework, das die Erstellung von Webanwendungen so einfach wie ein sanfter Windhauch macht. Ein wichtiges Feature, auf das Streamlit stolz ist, ist sein effizientes Datei-Upload-System, das wir in diesem Leitfaden umfassend behandeln werden.

Die Datei-Upload-Funktionalität in jeder Webanwendung ist ein entscheidendes Feature, das die Benutzerinteraktion ermöglicht. Sie ermöglicht den Benutzern das Eingeben ihrer Daten aus verschiedenen Gründen, wie z.B. Datenanalyse, Bildverarbeitung oder Dateikonvertierung. Im Zusammenhang mit Streamlit gewinnt die Datei-Upload-Funktion eine zusätzliche Bedeutung. Sie ermöglicht es Datenwissenschaftlern und Machine-Learning-Enthusiasten, ihre Daten direkt zu manipulieren, zu visualisieren und mit ihnen zu interagieren. Tauchen wir ein in die Funktionsweise der Datei-Upload-Funktion von Streamlit und erkunden ihr volles Potenzial.

Möchten Sie eine Data Analysis & Data Visualization App innerhalb von Streamlit kostenlos erstellen?

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die es Ihnen ermöglicht, eine Tableau-ähnliche Benutzeroberfläche problemlos in Ihre eigene Streamlit-App einzubetten. Schauen Sie sich dieses erstaunliche Video von Wie man Daten mit PyGWalker in Python erkundet (opens in a new tab) an, in dem die detaillierten Schritte zur Stärkung Ihrer Streamlit-App mit dieser leistungsstarken Data Visualization Python-Bibliothek demonstriert werden!


Besonderer Dank geht an Sven und seine großartige Beitrag (opens in a new tab) zur PyGWalker Community!

Zusätzlich können Sie auch die PyGWalker GitHub-Seite (opens in a new tab) für weitere PyGWalker-Beispiele überprüfen.

Streamlit Datei-Upload-Widget: Ihr Tor zum Datei-Upload

Was ist ein Streamlit Datei-Upload-Widget, fragen Sie sich? Es handelt sich um eine einzigartige Komponente, die Streamlit anbietet, um den Datei-Upload zu einem nahtlosen Prozess zu machen. Das Datei-Upload-Widget bietet eine interaktive Benutzeroberfläche, auf der Benutzer ihre Dateien per Mausklick hochladen können.

In einer Streamlit-App ist die Implementierung eines Datei-Upload-Widgets ein Kinderspiel. Die Funktion streamlit.file_uploader erledigt die ganze Arbeit. Geben Sie einfach einen Zeichenkettenargument, das der Titel des Datei-Uploaders ist.

Hier ist ein schnelles Beispiel:

import streamlit as st
 
uploaded_file = st.file_uploader("Wählen Sie eine CSV-Datei aus.", type='csv')

In dem obigen Code ist "Wählen Sie eine CSV-Datei aus" der Titel des Datei-Uploaders und type='csv' schränkt den Dateityp auf CSV-Dateien ein.

Wie man eine Datei in Streamlit hochlädt: Der Prozess wird enthüllt

Das Hochladen einer Datei in Streamlit ist dank der Einfachheit und Benutzerfreundlichkeit der Bibliothek ein Kinderspiel. Die hochgeladene Datei wird vorübergehend als temporäre Datei im Speicher gespeichert und Sie können sie wie jede andere Dateiobjekt manipulieren.

Streamlit unterstützt eine Vielzahl von Dateitypen, einschließlich, aber nicht beschränkt auf Bilder, Audio, Video, CSV und PDF. Lassen Sie uns den Datei-Upload-Prozess anhand eines umfassenderen Beispiels verstehen.

import streamlit as st
 
uploaded_file = st.file_uploader("Wählen Sie Ihre Datei aus", type=['csv', 'png', 'jpg'])
if uploaded_file is not None:
    # Um die Datei als Bytes zu lesen:
    bytes_data = uploaded_file.getvalue()
    st.write(bytes_data)
    
    # Zum Konvertieren in eine stringbasierte IO:
    stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
    st.write(stringio)
    
    # Zum Lesen der Datei als String:
    string_data = stringio.read()
    st.write(string_data)

In diesem Beispiel haben wir die Dateitypen auf CSV, PNG und JPG erweitert. Sobald die Datei hochgeladen ist, können Sie sie entweder als Bytes lesen, in eine stringbasierte IO konvertieren oder direkt als String lesen.

Anzeigen der hochgeladenen Datei: Von Daten bis zur Visualisierung

Die Freude am Hochladen einer Datei entsteht, wenn Sie diese Datei für weitere Verarbeitung und Visualisierung verwenden können. Wie zeigt man die hochgeladene Datei in Streamlit an? Die Antwort ist einfacher, als Sie vielleicht denken.

Nehmen wir an, Sie haben eine CSV-Datei hochgeladen und möchten sie als Datenrahmen mit Pandas visualisieren. So können Sie es tun:

import streamlit as st
import pandas as pd
 
uploaded_file = st.file_uploader("Laden Sie eine CSV-Datei hoch", type='csv')
if uploaded_file is not None:
    data = pd.read_csv(uploaded_file)
    st.write(data)

Dieser Code zeigt den Datenrahmen direkt in Ihrer Streamlit-App an und ermöglicht Ihnen die Weiterverarbeitung oder Visualisierung der Daten.

Umgang mit mehreren Datei-Uploads: Die Kraft der Massendaten

Jetzt, da wir einzelne Datei-Uploads gemeistert haben, gehen wir einen Schritt weiter. Können Sie mehrere Dateien in Streamlit hochladen? Absolut! Dieses Feature kann besonders hilfreich sein, wenn Sie es mit mehreren Datensätzen oder Massenbildern, Audio-Dateien und mehr zu tun haben.

Um mehrere Dateien hochzuladen, setzen Sie einfach den accept_multiple_files-Parameter in der Funktion st.file_uploader auf True.

import streamlit as st
 
uploaded_files = st.file_uploader("Wählen Sie Ihre Dateien aus", accept_multiple_files=True)
for uploaded_file in uploaded_files:
    st.write(uploaded_file.name)

Beim Hochladen mehrerer Dateien müssen Sie sich über das Datei-Upload-Größenlimit von Streamlit im Klaren sein. Standardmäßig erlaubt Streamlit ein maximales Upload-Limit von 200MB. Sie können dieses Limit jedoch in der Streamlit-Konfigurationsdatei ändern. Das sind die ersten vier Teile unseres Leitfadens! Wir haben gesehen, wie Streamlit uns mit einfachen Datei-Upload-Prozessen von einzelnen bis zu mehreren Dateien ausstattet. Aber wir hören hier nicht auf! Bleiben Sie dran, während wir uns in den nächsten Teilen unseres Leitfadens mit fortgeschrittenen Themen wie Validierung, Sicherheit und mehr beschäftigen.

Streamlit-Datei-Upload-Fortschrittsbalken: Verfolgen Sie Ihre Uploads

Nun, da wir mehrere Datei-Uploads behandelt haben, fragen Sie sich vielleicht, ob es eine Möglichkeit gibt, den Upload-Prozess zu verfolgen. Streamlit hat Sie auch hier abgedeckt mit der Streamlit-Datei-Upload-Fortschrittsanzeige. Sie wird automatisch während des Datei-Uploads angezeigt und gibt den Benutzern Echtzeit-Feedback zum Upload-Prozess. All dies wird intern von Streamlit gehandhabt, so dass kein zusätzlicher Code von Ihrer Seite erforderlich ist!

Fortgeschrittene Themen zum Datei-Upload in Streamlit

Als nächstes gehen wir auf einige fortgeschrittene Themen rund um den Datei-Upload in Streamlit ein, beginnend mit der Validierung des Datei-Uploads.

Validierung des Datei-Uploads in Streamlit

Es kann notwendig sein, den Dateityp oder die Größe der hochgeladenen Datei zu überprüfen, um sicherzustellen, dass sie für Ihre Anwendung geeignet ist. Dieser Vorgang wird als Validierung des Datei-Uploads bezeichnet. In Streamlit können Sie den type-Parameter in der st.file_uploader-Funktion festlegen, um die Dateitypen einzuschränken, die hochgeladen werden können.

Darüber hinaus können Sie nach dem Hochladen der Datei benutzerdefinierte Validierungsprüfungen implementieren. Zum Beispiel können Sie den Inhalt einer CSV-Datei überprüfen, um sicherzustellen, dass sie die erforderlichen Spalten enthält.

Sicherheit des Datei-Uploads in Streamlit

Sicherheit ist ein wichtiges Anliegen beim Umgang mit Datei-Uploads. Die gute Nachricht ist, dass Streamlit Sicherheit ernst nimmt. Alle hochgeladenen Dateien werden im Arbeitsspeicher und nicht auf der Festplatte gespeichert. Wenn das Skript erneut ausgeführt wird, löscht Streamlit die alten hochgeladenen Dateien. Es ist jedoch immer ratsam, je nach spezifischem Anwendungsfall zusätzliche Sicherheitsmaßnahmen zu implementieren.

Datei-Upload in Streamlit zu S3

Wenn Sie die hochgeladenen Dateien für eine spätere Verwendung speichern möchten, können Sie sie in einen Speicherdienst wie AWS S3 hochladen. Obwohl Streamlit hierfür keine integrierte Funktion bereitstellt, ist es mit der boto3-Bibliothek einfach. Sobald Sie das Dateiobjekt von st.file_uploader haben, können Sie es auf S3 hochladen.

Datei-Upload in Streamlit zu einer Datenbank

Ähnlich können Sie hochgeladene Dateien oder deren Daten direkt in eine Datenbank speichern. Sobald die Datei in Streamlit hochgeladen wurde, können Sie sie verarbeiten und die Daten mithilfe der geeigneten Python-Bibliothek für Ihre Datenbank speichern.

Datei-Upload in Streamlit in der maschinellen Lernung

Im Kontext von maschinellen Lernprojekten glänzt die Datei-Upload-Funktionalität von Streamlit besonders. Sie ermöglicht es Benutzern, Daten direkt in die App hochzuladen. Sie können dann die Daten verarbeiten, Modelle erstellen, Vorhersagen treffen und sogar die Ergebnisse in der App anzeigen!

Zum Beispiel kann ein Benutzer ein Bild hochladen, das von einem maschinellen Lernmodell verarbeitet wird, um Objekte zu identifizieren oder das Bild zu klassifizieren. Die Möglichkeiten sind vielfältig und spannend!

Fazit

In diesem umfassenden Leitfaden haben wir das Potenzial der Datei-Upload-Funktion von Streamlit aufgedeckt. Von den Grundlagen des Hochladens einzelner Dateien über den Umgang mit mehreren Dateien bis hin zu fortgeschrittenen Themen wie Validierung und Sicherheit haben wir alles behandelt. Wir haben sogar kurz erläutert, wie man den Streamlit-Datei-Upload mit AWS S3 und Datenbanken integrieren kann. Mit diesen Werkzeugen sind Sie bestens gerüstet, um ansprechende und interaktive Webanwendungen mit Streamlit zu erstellen.

Haben Sie von diesem tollen Data Analysis & Data Visualisation Tool gehört, das Ihre Streamlit-App in Tableau verwandelt?

PyGWalker (opens in a new tab) ist eine Python-Bibliothek, die es Ihnen ermöglicht, eine Tableau-ähnliche Benutzeroberfläche mühelos in Ihre eigene Streamlit-App einzubetten.

PyGWalker für die Datenvisualisierung in Streamlit (opens in a new tab)

Häufig gestellte Fragen

1. Wie lade ich Dateien in Streamlit hoch?

Sie können Dateien mit der st.file_uploader-Funktion in Streamlit hochladen. Diese Funktion stellt in Ihrer Streamlit-App ein Widget zur Verfügung, über das Benutzer ihre Dateien hochladen können.

2. Wo speichert Streamlit hochgeladene Dateien?

Streamlit speichert hochgeladene Dateien im Arbeitsspeicher und nicht auf der Festplatte. Diese Dateien werden als temporäre Dateien behandelt und werden gelöscht, wenn das Skript erneut ausgeführt wird.

3. Wie lade ich eine API-Datei hoch?

Streamlits st.file_uploader kann jeden Dateityp, einschließlich API-Dateien, verarbeiten. Sobald die Datei hochgeladen ist, können Sie sie nach Ihren Bedürfnissen verarbeiten.

4. Welche Größe kann Streamlit hochladen?

Standardmäßig erlaubt Streamlit eine maximale Upload-Größe von 200MB. Diese Grenze kann jedoch in der Streamlit-Konfigurationsdatei geändert werden.