Skip to content

Streamlit Upload de Arquivo: Dominando o Upload e Exibição de Arquivos com Python

Bem-vindo ao mundo do Streamlit, um framework Python que torna a criação de aplicações web tão suave como uma brisa. Um recurso importante que o Streamlit possui é seu eficiente sistema de upload de arquivos, que exploraremos de forma abrangente neste guia.

A funcionalidade de upload de arquivos em qualquer aplicação web é um recurso crítico que permite interação do usuário. Ele permite que os usuários insiram seus dados por várias razões, como análise de dados, processamento de imagens ou conversão de arquivos. No contexto do Streamlit, o recurso de upload de arquivos ganha significado adicional. Ele permite que cientistas de dados e entusiastas de aprendizado de máquina manipulem, visualizem e interajam com seus conjuntos de dados diretamente. Vamos explorar os detalhes do recurso de upload de arquivos do Streamlit e descobrir todo o seu potencial.

Quer criar um aplicativo de análise de dados e visualização de dados com o Streamlit de graça?

PyGWalker (opens in a new tab) é uma biblioteca Python que ajuda você a incorporar facilmente uma interface semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço. Confira este incrível vídeo produzido por Sven do Coding is Fun (opens in a new tab) demonstrando os passos detalhados para potencializar seu aplicativo Streamlit com esta poderosa Biblioteca de Visualização de Dados em Python!


Agradecimentos especiais a Sven e sua grande contribuição (opens in a new tab) para a comunidade do PyGWalker!

Além disso, você também pode conferir a Página do GitHub do PyGWalker (opens in a new tab) para mais exemplos do PyGWalker.

Widget de Upload de Arquivo do Streamlit: Sua Porta de Entrada para o Upload de Arquivos

O que é um widget de upload de arquivo do Streamlit, você pergunta? É um componente único que o Streamlit oferece para tornar o upload de arquivos um processo simples. O widget de upload de arquivos fornece uma interface interativa onde os usuários podem fazer o upload de seus arquivos com o clique de um botão.

Em um aplicativo do Streamlit, implementar um widget de upload de arquivos é moleza. A função streamlit.file_uploader faz todo o trabalho pesado. Basta fornecer um argumento string que é o título do widget de upload de arquivos.

Aqui está um exemplo rápido:

import streamlit as st
 
uploaded_file = st.file_uploader("Escolha um arquivo CSV", type='csv')

No código acima, 'Escolha um arquivo CSV' é o título do widget de upload de arquivos e type='csv' restringe o tipo de arquivo para arquivos CSV.

Como Fazer o Upload de um Arquivo no Streamlit: Revelando o Processo

Fazer o upload de um arquivo no Streamlit é fácil devido à simplicidade e facilidade de uso da biblioteca. O arquivo enviado é armazenado na memória como um arquivo temporário e você pode manipulá-lo como qualquer outro objeto de arquivo.

O Streamlit suporta vários tipos de arquivos, incluindo, mas não se limitando a imagens, áudio, vídeo, CSV e PDF. Vamos entender o processo de upload de arquivos com um exemplo mais abrangente.

import streamlit as st
 
uploaded_file = st.file_uploader("Escolha seu arquivo", type=['csv', 'png', 'jpg'])
if uploaded_file is not None:
    # Para ler o arquivo como bytes:
    bytes_data = uploaded_file.getvalue()
    st.write(bytes_data)
    
    # Para converter para um objeto IO baseado em string:
    stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
    st.write(stringio)
    
    # Para ler o arquivo como string:
    string_data = stringio.read()
    st.write(string_data)

Neste exemplo, expandimos os tipos de arquivo para CSV, PNG e JPG. Depois que o arquivo é enviado, você pode lê-lo como bytes, convertê-lo em um objeto IO baseado em string ou lê-lo diretamente como uma string.

Exibindo o Arquivo Enviado: De Dados à Visualização

A alegria de fazer o upload de um arquivo realmente acontece quando você pode usar esse arquivo para processamento e visualização adicionais. Então, como você exibe o arquivo enviado no Streamlit? A resposta é mais simples do que você imagina.

Vamos supor que você tenha enviado um arquivo CSV e deseja visualizá-lo como um dataframe usando o Pandas. Veja como você pode fazer isso:

import streamlit as st
import pandas as pd
 
uploaded_file = st.file_uploader("Faça o upload de um arquivo CSV", type='csv')
if uploaded_file is not None:
    data = pd.read_csv(uploaded_file)
    st.write(data)

Este código exibirá o dataframe diretamente em seu aplicativo Streamlit, permitindo que você prossiga com a manipulação ou visualização dos dados.

Lidando com Múltiplos Uploads de Arquivos: O Poder dos Dados em Massa

Agora que dominamos os uploads de arquivos únicos, vamos avançar. Você pode fazer upload de vários arquivos no Streamlit? Com certeza! Este recurso pode ser especialmente útil quando você está lidando com vários conjuntos de dados ou imagens em massa, arquivos de áudio e muito mais.

Para fazer upload de vários arquivos, basta definir o parâmetro accept_multiple_files como True na função st.file_uploader.

import streamlit as st
 
uploaded_files = st.file_uploader("Escolha seus arquivos", accept_multiple_files=True)
for uploaded_file in uploaded_files:
    st.write(uploaded_file.name)

Ao fazer upload de vários arquivos, você precisa estar ciente do limite de tamanho de upload de arquivos do Streamlit. Por padrão, o Streamlit permite um upload máximo de 200MB. No entanto, você pode modificar esse limite no arquivo de configuração do Streamlit. Isso é as quatro primeiras partes do nosso guia cobertas! Vimos como o Streamlit nos capacita com processos fáceis de upload de arquivos, desde arquivos individuais até múltiplos arquivos. Mas não vamos parar aqui! Fique ligado enquanto exploramos tópicos avançados como validação, segurança e mais, nas próximas partes do nosso guia.

Barra de progresso de upload de arquivos do Streamlit: Acompanhe seus uploads

Agora que abordamos o upload de vários arquivos, você pode se perguntar se há uma maneira de acompanhar o processo de upload. O Streamlit também permite que você acompanhe o progresso do upload com a barra de progresso de upload de arquivos do Streamlit. Ela aparece automaticamente durante o upload de arquivos, fornecendo aos usuários feedback em tempo real sobre o processo de upload. Tudo isso é tratado internamente pelo Streamlit, portanto nenhum código extra é necessário!

Tópicos avançados no Upload de Arquivos

A seguir, vamos nos aprofundar em alguns tópicos avançados relacionados ao upload de arquivos no Streamlit, começando pela validação do upload de arquivos.

Validação de Upload de Arquivos no Streamlit

Você pode precisar verificar o tipo ou tamanho do arquivo enviado para garantir que ele seja adequado para sua aplicação. Esse processo é conhecido como validação do upload de arquivos. No Streamlit, você pode configurar o parâmetro type na função st.file_uploader para restringir os tipos de arquivos que podem ser enviados.

Além disso, você pode implementar verificações de validação personalizadas após o envio do arquivo. Por exemplo, você pode verificar o conteúdo de um arquivo CSV para garantir que ele possui as colunas necessárias.

Segurança do Upload de Arquivos no Streamlit

A segurança é uma preocupação primordial ao lidar com uploads de arquivos. A boa notícia é que o Streamlit leva a segurança a sério. Todos os arquivos enviados são armazenados na memória, não no disco. Quando o script é executado novamente, o Streamlit exclui os arquivos antigos enviados. No entanto, é sempre recomendável implementar medidas adicionais de segurança, dependendo do caso de uso específico.

Upload de Arquivos do Streamlit para o S3

Se você deseja armazenar os arquivos enviados para uso posterior, pode considerar enviá-los para um serviço de armazenamento como o AWS S3. Embora o Streamlit não forneça uma função incorporada para isso, é fácil de fazer usando a biblioteca boto3. Depois de obter o objeto do arquivo de st.file_uploader, você pode enviá-lo para o S3.

Upload de Arquivos do Streamlit para um Banco de Dados

Da mesma forma, você pode querer armazenar arquivos enviados ou seus dados diretamente em um banco de dados. Depois que o arquivo é enviado para o Streamlit, você pode processá-lo e salvar os dados em seu banco de dados usando a biblioteca Python apropriada para o seu banco de dados.

Upload de Arquivos do Streamlit em Aprendizado de Máquina

No contexto de projetos de aprendizado de máquina, a funcionalidade de upload de arquivos do Streamlit se destaca. Ela permite que os usuários enviem conjuntos de dados diretamente para o aplicativo. Você pode então processar os dados, criar modelos, fazer previsões e até mesmo exibir os resultados, tudo dentro do aplicativo!

Por exemplo, um usuário pode enviar uma imagem, que um modelo de aprendizado de máquina então processa para identificar objetos ou classificar a imagem. As possibilidades são vastas e empolgantes!

Conclusão

Neste guia abrangente, descobrimos o potencial do recurso de upload de arquivos do Streamlit. Desde o básico de envio de arquivos individuais, passando pelo envio de vários arquivos, até a discussão de tópicos avançados como validação e segurança, abordamos tudo isso. Também falamos sobre como integrar o upload de arquivos do Streamlit com o AWS S3 e bancos de dados. Com essas ferramentas em seu arsenal, você está bem equipado para criar aplicativos web envolventes e interativos usando o Streamlit.

Você já ouviu falar dessa incrível ferramenta de Análise de Dados e Visualização de Dados que transforma seu aplicativo Streamlit em um Tableau?

PyGWalker (opens in a new tab) é uma Biblioteca Python que ajuda você a incorporar facilmente uma IU semelhante ao Tableau em seu próprio aplicativo Streamlit sem esforço.

PyGWalker para visualização de dados no Streamlit (opens in a new tab)

Perguntas Frequentes

1. Como faço para fazer upload de arquivos para o Streamlit?

Você pode fazer upload de arquivos para o Streamlit usando a função st.file_uploader. Essa função fornece um widget em seu aplicativo Streamlit por meio do qual os usuários podem fazer upload de seus arquivos.

2. Onde o Streamlit armazena arquivos enviados?

O Streamlit armazena os arquivos enviados na memória, não no disco. Esses arquivos são tratados como arquivos temporários e são excluídos quando o script é executado novamente.

3. Como faço para fazer upload de um arquivo de API?

O st.file_uploader do Streamlit pode lidar com qualquer tipo de arquivo, incluindo arquivos de API. Depois que o arquivo é enviado, você pode processá-lo de acordo com suas necessidades.

4. Qual é o tamanho máximo de upload do Streamlit?

Por padrão, o Streamlit permite um tamanho máximo de upload de 200MB. No entanto, esse limite pode ser modificado no arquivo de configuração do Streamlit.