Jump to content

Thanael

Pessoal da TecnoSpeed
  • Contagem de Conteúdo

    214
  • Ingressou

  • Última visita

  • Dias Ganhos

    26

Tudo que foi postado por Thanael

  1. Olá @fenbasso. Não entendo muito bem como ocorre essa chamada do arquivo .kv. Pesquisando brevemente sobre o tema encontrei algo que possa lhe ajudar... How to load .kv files? [closed] No tópico ele realiza a importação de kv files da seguinte forma. from kivy.lang import Builder Builder.load_file('kivi.kv') Aí basta passar o caminho de seus arquivos. Exemplo: tela2.kv, tela3.kv e etc. Recomendo olhar a própria documentação da biblioteca sobre isso em: Kivy - Builder tem uma parte específica que explica sobre isso Enfim, recomendo ir testando e procurando para verificar como resolver isso, por não conhecer a biblioteca infelizmente não consigo ajudar de forma mais precisa.
  2. Olá @fenbasso. Infelizmente não conheço muito sobre essa questão de interfaces com Python. Porém, se a dúvida é sobre Modularização, e possível, sim, modular seu código. Recomendo dar uma olhada nesses artigos para ter uma ideia de como realizar essa modularização e com isso adaptar seu código para possibilitar a criação dos módulos e etc. Modularização em Python - Medium Modularização, testes e reuso Neles tem alguns exemplos práticos que pode lhe auxiliar. Exemplo: (Imagem do 1° Artigo) Espero que isso lhe dê uma base para conseguir modularizar seu código.
  3. Bom dia @alessandro.cardoso dando uma breve olhada é possivel sim, o banco Santander possui algumas APIs mesmo, segue abaixo os links Contas - Saldo e extrato API Saldo e Extrato Se fuçar e realizar os testes acredito que é possível realizar o que necessita.
  4. @anny karolliny raquebaque pela imagem ali, a única diferença entre "Sua Saída" e a "Saída esperada" é que você adicionou um print("Fim da contagem regressiva") ao final... Isso por sua vez pode gerar o problema ali. O resultado esta como o esperado, remove esse seu ultimo print e testa novamente.
  5. Olá @Higor Da Silva tudo bem ? Fiquei meio confuso aqui haha, para facilitar com que eu consiga lhe ajudar preciso entender algumas coisas. Qual a estrutura do DataFrame ? (Se puder mandar um print, pode ocultar os dados, só preciso entender a estrutura de colunas do DataFrame) O que você precisa no caso é simplesmente substituir os valores nulos de uma coluna pelo retorno da função VerificarTurno? Se for isso uma abordagem é utilizar o df.apply( ) segue abaixo um exemplo de código. # Basicamente vai percorrer cada linha da coluna responsável. # Se o responsavel for NULO ele vai colocar o retorno da função verificarTurno # Se o responsável NÃO FOR NULO ele vai colocar o valor já existente de responsável. df['responsavel'] = df.apply(lambda item: verificarTurno(parametro) if item['responsavel'] else item['responsavel'], axis = 1) Enfim, essa é uma maneira mas tudo depende de como o DataFrame esta estruturado e do que exatamente precisa. Espero que isso lhe ajude, enquanto isso aguardo sua resposta para conseguir auxiliar de forma mais assertiva.
  6. Olá @anny karolliny raquebaque tudo bem ? Olhando seu código só faltou ajustar o While number > 0 para >= 0... Pois de acordo com seu código a lógica é: ENQUANTO número_digitado for maior que 0 printar o Número Diminuir Perceba que quando chegar no número 1 ele não irá para próxima iteração. Pois, o próximo número vai ser 0 e como 0 não é maior que 0 ele não irá printar. Segue abaixo o ajuste # take the number as input number = int(input()) # use a while loop for the countdown while number >= 0: print(number) number -= 1 print("Fim da contagem regressiva!") Dessa forma vai funcionar tranquilamente, essas coisas tendem a passar despercebidas mesmo haha 😅
  7. Olá @ctrlah tudo bem? Segue abaixo algumas abordagens que pode lhe auxiliar. Utilizar alguma API de IA (Inteligencia Artificial) como por exemplo ChatGPT É relativamente simples, porém provavelmente não terá informações atualizadas ou tão confiáveis... Utilizar abordagens de Web Scraping Pode utilizar uma abordagem de Web Scraping para obter os dados da pesquisa do google refrente ao que deseja. Ou criar extrações de dados de sites de noticias referentes ao que deseja. Particularmente acredito que essa abordagem seja mais viável adaptável as suas necessidades Segue abaixo algumas ideias de utilização de Web Scraping Obter as manchetes mais recentes sobre o que deseja. Criar extrações de dados de determinados sites de notícias sobre o tema desejado. OBS: Tenho uma postagem introdutória sobre este tema aqui em Você já ouviu falar em WebScraping? Espero que isso lhe ajude a entender melhor o que precisa e quais os caminhos para executar isso. De qualquer forma estou disposto para auxiliar se tiver mais dúvidas.
  8. Uma dica é você tentar conectar nele através de um SGBD padrão (Dbeaver, MySQL) ou qualquer outro só para ir testando a conexão por ser mais visível e fácil. Encontrei algo relacionado a seu problema em Conexão com banco de dados MYSQL hospedado no KingHost aparentemente a porta é 3306, tenta adicionar ela e testar aí. Acabei de testar via Dbeaver e realmente é a PORT 3306, recebendo somente o erro aqui por conta das credenciais. Então realiza a conexão novamente ali adicionando esse por 3306 conforme string de conexão passei nos comentários anteriores.
  9. Olá @alessandro.cardoso. Algumas dúvidas. Seu banco de dados não possuir PORT ? Verifica a porta de conexão dele. Sugiro manter a string de conexão igual a que mostrei "mysql+pymysql" para garantir (Peguei esse exemplo de uma conexão funcionando aqui que tenho)
  10. Olá @alessandro.cardoso. O erro apresentado no seu código diz que "_mysql_connector.MySQLInterfaceError: Nenhum banco de dados foi selecionado", ou seja, faltou você informar o nome do banco de dados. Segue abaixo um exemplo de código que também realiza a conexão. from sqlalchemy import create_engine conexao = create_engine('mysql+pymysql://{user}:{password}@{host}:{port}/{db}'.format( user='usuario', password='senha', host='host', port='porta', db='database', )) Uma forma prática de realizar selects e já ter uma estrutura fácil de manipular é: import pandas as pd # Conexão seria a conexão com o banco definido no bloco de código acima df = pd.read_sql(''' select * from tabela ''', conexao) Espero que isso tenha lhe ajudado, caso contrário estou à disposição para ajudar no que for preciso.
  11. Olá @diegosposito. Pela imagem que mandou, mostra que você já tem ele devidamente instalado. Quando você tenta importar e utilizar ele acontece algum erro ? Na teoria está tudo certo. O PyAutogui age realizando comandos através de sua máquina, ou seja é possível controlar o mouse e teclado através do Python, poderia explicar um pouco mais da sua situação? Problemas ou até mesmo o que está tentando realizar.
  12. Olá @lnsnts tudo bem ? Para lhe auxiliar da melhor forma consegue me mandar o Trecho do LOOP. (Obs recomendo usar a opção de adicionar código para que ele mantenha a formatação e facilite no entendimento) Ou caso prefira pode mandar o Print do código mostrando o LOOP que ai vai facilitar para lhe auxiliar. Uma dica, caso esteja usando um WHILE e Try/Except recomendo verificar a lógica para que ele saia do LOOP, uma sugestão é adicionar um BREAK dentro do Except. Dito isto, aguardo sua resposta com o código ou print para facilitar com que outros membros possam lhe ajudar. 👍
  13. Thanael

    Python e Selenium

    Olá @jorgepedro7 tudo bem ? Existem inúmeras formas de obter o elemento, vendo que já tentou algumas mais populares recomendo mudar sua abordagem. Tenta utilizar uma abordagem voltada a pegar o próprio <button> pelo. driver.find_element(By.TAG_NAME, 'button') Uma dica é verifica o caminho do botão, as vezes é mais simples pegar o elemento PAI e através dele achar o botão... Exemplo <div id='div_button'> <button> Click here </button> </div> Perceba que somente pelo <button> é complicado visto que ele não tem identificador como ID, Class etc. Portanto é mais simples obtermos o elemento pai (DIV) que possui um identificador e através dele verificar os botões que existem. Outra dica é se existir mais de um botão pode fazer um for e simplesmente verificar o texto do botão para selecionar o que deseja. Espero que essa ideia de abordagem possa lhe auxiliar, caso contrário sugiro mandar o trecho do HTML que contém o botão, deixando mais fácil para ajudá-lo.
  14. Olá @pedrohenrique tudo bem? Uma maneira simples de corrigir isso é usando a tratativa de erros com o Try/Except. Aí funcionará como esperado segue abaixo o código. Operação = input ("""Por favor digite o operador que deseja: + Para adição - Para subtração * Para multiplicação / Para divisão\n""") try: # Pode deixar INT caso não queira casas decimais num_1 = float(input('Número 1:')) num_2 = float(input('Número 2:')) if Operação == '+': print('{} + {} = {}'.format(num_1, num_2, num_1 + num_2)) elif Operação == '*': print('{} * {} = {}'.format(num_1, num_2, num_1 * num_2)) elif Operação == '-': print('{} - {} = {}'.format(num_1, num_2, num_1 - num_2)) elif Operação == '/': print('{} / {} = {}'.format(num_1, num_2, num_1 / num_2)) else: print ('Acho que você errou, tente novamente!') except: print('Digite apenas números') Essa é uma das maneiras de realizar isso, lembrando que existem N outras. Espero ter te ajudado caso contrario estou a disposição.
  15. Olá pessoal tudo bem? Vou mostrar uma forma simples de realizar o Unpivot nos dados atravês da função melt( ) do Pandas. Porém, primeiramente vou explicar o que é este Unpivot e sua utilidade. Unpivot O Unpivot consiste no ato de "Girar uma tabela transformando colunas em linhas.". Pode parecer confuso, mas na imagem abaixo vai ficar mais simples de entender. Quando usar Essa técnica é muito utilizada na manipulação dos dados para padronizar a estrutura dos dados, perceba que é muito mais simples trabalhar com os dados com as colunas (Attributes e Values) do que precisar trabalhar com todos as N colunas que existiam anteriormente (A1, A2, A3 e assim por diante). Algumas das utilizações mais comuns são em dados provindos de planilhas, no qual a estrutura da planilha é muito similar a primeira tabela da Imagem (Colunas: A1, A2, A3 e etc) por ser uma estrutura mais fácil de trabalhar em planilhas. Porém, esse tipo de estrutura é muito difícil de se trabalhar em programação ou de armazenar e manipular elas em Banco de dados. Como realizar esse processo de Unpivot nos dados em Python Primeiramente vou mostrar aqui a estrutura de dados na qual vou estar trabalhando. Perceba que na estrutura de dados a seguir as colunas sobre os Vendedores estão na seguinte forma (VendedorA, VendedorB, VendedorC e VendedorD). Essa estrutura não é muito simples de se trabalhar em um banco de dados, por exemplo, e como pretendemos levar essas informações para o banco de dados precisamos realizar a adaptação desses dados para um formato mais simples de se trabalhar. pandas.melt( ) Para realizar esse Unpivot nos dados vamos usar a função pandas.melt (Link para documentação com alguns exemplos práticos). pd.melt( df , id_vars=['Data','Loja'], value_vars=['VendedorA','VendedorB','VendedorC','VendedorD'], var_name = 'Vendedor', value_name = 'Valor' ).sort_values(by = ['Data','Loja']) Obs: caso as colunas que desejo fazer o Unpivot seja algo que possa variar existem outras formas obtê-las, por exemplo. Desta forma vai trazer todas as colunas menos as que não desejo fazer o Unpivot. (coloca esse comando no value_vars) [coluna for coluna in df.columns if coluna not in ['Data','Loja']] Resultado Após utilizar o pandas.melt teremos o seguinte resultado. Sendo essa uma estrutura de dados muito mais fácil para realizar as analises via Programação (Python, R etc) ou até mesmo para realizar consultas via SQL. Considerações Finais Enfim essa é a uma das formas que utilizo para realizar o Unpivot nos dados, existem inúmeras outras formas, algumas mais simples, outras mais complexas, porém a que julgo mais simples e eficaz e esta que ensinei a vocês. Espero que esse conteúdo seja útil para vocês e qualquer dúvida deixe nos comentários que ficarei feliz em responder.
  16. Bom dia. Então o -1 é o índice para o Slicing (Esse número limita o que vamos visualizar na string) Ele segue o padrão de variavel[ inicio : fim : step], podendo ser número positivo ou negativo. Inicio vai definir de onde queremos que o texto inicie. Fim vai definir até onde querermos que o texo vá. Step vai definir que a quantidade será de N em N caracteres. Aqui uma imagem para facilitar isso. Sugiro ler arr[0:3] como "quero mostrar o texto que inicia da casa 0 e vai até a casa 3", ou seja, PRE Segue abaixo um artigo que explicar isso muito bem também. Python Strings Slicing esse slicing pode ser usado também em listas, sendo muito útil. Espero que isso tenha esclarecido um pouco mais sobre o porquê utilizei o - 1, pois não queria que o texto fosse até o fim e sim somente até o ] que está na posição (-1) no texto.
  17. Olá @Carlos dAvila tudo bem ? Existem algumas alternativas, porém como não sei exatamente como está o campo CNAE SECUNDÀRIO fica um pouco complicado, pois ele pode estar como String ou pode estar já com Lista... Portanto, recomendo sempre converter isso em lista para facilitar na navegação dos itens. Exemplo de como realizar isso: df['CNAE SECUNDARIO'] = df['CNAE SECUNDARIO'].str.split(',') Após isso torna-se mais fácil realizar as buscas segue abaixo o exemplo. Utilizando Apply + IN # Alterar o 6810201 para o CNAE que deseja buscar. # Vai retornar todas as linhas cujo CNAE Secundario possua o digitado df[df['CNAE SECUNDARIO'].apply(lambda lista: '6810201' in lista)] Enfim espero que seja isso que esteja procurando, caso contrário estou à disposição para ajudar.
  18. Olá @kleber jeneiro tudo bem ? Isso ocorre, pois na criação da função você definiu que espera 2 parâmetros (userName e password). Porém, no código em algum momento foi chamado a sua função passando apenas 1 parâmetro. Se analisar o erro TypeError: botao_logar() missing 1 required positional argument: 'password'. Ele comenta exatamente isso que ao chamar a função botao_logar() está faltando um parâmetros, o 'password'. Recomendo analisar o código e ver todas às vezes que a função é chamada para garantir que esteja sendo passado todos os parâmetros.
  19. Boa tarde @alessandro.cardoso. O problema está no formato que a API está retornando, pois ele acaba não sendo um formato válido para o JSON. Se olhar a estrutura vai perceber que o DATA ali deveria estar entre " " ou seja "data" para estar no formato correto 😕 Porém, conseguimos tratar isso mesmo assim em python e com isso criar o DataFrame. Segue abaixo como realizar isso. import requests import json import pandas as pd req = requests.get('http://ofertas.silcarpneus.com.br/json/lojas.php?key=silcarpneus2023@') # Ajustar a envode do Texto dados = req.content.decode('utf-8') # Fazer um Slicing no Texto para obter somente uma parte dele ou seja obter o que está dentro de [ ] # Exemplo: '{ data : [{"Loja":"F21 - Ribeirao Preto","agentsOnline":"1"}]}' vai retornar somente [{"Loja":"F21 - Ribeirao Preto","agentsOnline":"1"}] json_string = dados[dados.find('['):-1] # Transformar isso num formato válido para criar o DataFrame. # Exemplo: '[{"Loja":"F21 - Ribeirao Preto","agentsOnline":"1"},{"Loja":"F32 - Ribeirao Preto","agentsOnline":"2"}]' dados_formatados = json.loads(json_string) # Criar o DataFrame df = pd.DataFrame(dados_formatados) Normalmente não é necessário realizar isso, pois as APIs já retornam no formato correto de JSON, porém também é simples tratar os dados. Espero que seja isso que precise, caso contrario estou à disposição para ajudar. 👍
  20. Olá @alessandro.cardoso tudo bem ? Uma forma simples é transformar esses dados em um DataFrame do Pandas. Segue a lógica para fazer isso. Realiza o Request ai na API. Converte a resposta em JSON. Cria o DataFrame. Exemplo de código: import requests import pandas as pd import json # Realiza a Requisição e converte em JSON - Ai precisará adaptar headers e parametros da API caso tenha req = requests.get('URL DA API').json() # Cria o DataFrame df = pd.DataFrame(req['data']) Exemplo da estrutura final. Após ter o DataFrame você pode manipulá-lo como desejar, inserir em banco de dados, criar visualizações entre outras ações. Espero que isso lhe ajude, caso contrário estou à disposição para auxiliar.
  21. Olá @renangpaiva tudo bem? Atualmente existem inúmeras formas de criar dashboards em Python, cada biblioteca tem suas particularidades, algumas a visualização é direto no Jupyter outras criam a visualização através do navegador. Recomendo verificar o curso que está fazendo e a biblioteca que ele utiliza, pode ser que em alguns casos precise realizar configurações simples no código para, por exemplo, abrir o dashboard no navegador. Sendo assim sugiro olhar a biblioteca e pesquisar como a mesma funciona, caso mesmo assim não conseguir comenta aqui algumas partes do código e a biblioteca que está utilizando.
  22. Bom dia @ezanardo. Poderia mandar um print do arquivo excel ? (Pode ocultar os valores se quiser) Provavelmente o Pandas não está conseguindo entender uma parte da Planilha para conseguir criar o DataFrame. Uma alternativa é ler os arquivos por outra biblioteca e após ter a estrutura correta criar o DataFrame. Aqui neste artigo mostra algumas formas de ler Excel além do pandas Abrindo arquivos Excel em Python Espero que isso lhe ajude, caso contrário, com mais informações vou conseguir lhe auxiliar de forma mais assertiva.
  23. @sirsmart é possivel sim segue abaixo o código. import os import datetime import pandas as pd # Pasta dos arquivos caminho = '/home/ec2-user/etls/' # Obter todos os arquivos da pasta files = os.listdir(caminho) files.sort() # Teremos uma lista com todos os arquivos .txt dict_arquivos = { 'file': [], 'created_at': [] } for file in files: #Verificar se é TXT if '.txt' in file: # Obter a data de criação em timestamp e converter para Date timestamp = os.path.getmtime(f"{caminho}{file}") created_at = datetime.datetime.fromtimestamp(timestamp).date() # Alimentar o Dicionario dict_arquivos['file'].append(file) dict_arquivos['created_at'].append(created_at) # Criar o DataFrame com esses dados df_file = pd.DataFrame(dict_arquivos) # Ordernar os dados pela data de criação df_file = df_file.sort_values(by =['created_at']) Essa foi a forma que construí aqui o algoritmo, lembrando que há formas mais rápidas, mas essa foi a que consegui nesse tempo, espero que lhe ajude. Artigo consultado para obter a data de criação: Python Get File Creation and Modification DateTime Espero que seja isso que precise, caso contrario estou a disposição para ajudar.
  24. Quando é obtido todos os arquivos da pasta. Usamos o sort( ) para ordenar os arquivos se não me engano por ordem alfabética (A até Z, a até z) algo assim. Ai ao usar o FOR ele irá percorrer por cada registro na ordem dos índices do FOR ou seja na ordem que o SORT retornou (Alfabética) Essa parte aqui do código import os # Pasta dos arquivos caminho = '/home/ec2-user/etls/Testes_Wiki/' # Obter todos os arquivos da pasta files = os.listdir(caminho) files.sort() # Teremos uma lista com todos os arquivos .txt arquivos_txt = [file for file in files if '.txt' in file] print(arquivos_txt) Se você olhar o print dessa lista (arquivos_txt) é nesta ordem que iremos ler os arquivos.
  25. Olá @sirsmart tudo bem ? Existe uma maneira simples de realizar isso dependendo do conteúdo dos arquivos. Mas basicamente você precisará realizar duas etapas Navegar pelos Arquivos Armazenar os dados dos arquivos Segue abaixo um exemplo de código import os # Pasta dos arquivos caminho = '/home/ec2-user/etls/Testes_Wiki/' # Obter todos os arquivos da pasta files = os.listdir(caminho) files.sort() # Teremos uma lista com todos os arquivos .txt arquivos_txt = [file for file in files if '.txt' in file] # Uma string para armazenar todos os outros arquivos all_data = '' for txt in arquivos_txt: # Ler o arquivo data = open(caminho + txt, "r") # Armazenar os dados all_data += f"Arquivo: {txt} \nDados: {data.read()}. \n\n" print(all_data) Espero que seja isso que precise, caso contrario estou a disposição para ajudar.
×
×
  • Create New...