Jump to content

Thanael

Pessoal da TecnoSpeed
  • Contagem de Conteúdo

    217
  • Ingressou

  • Última visita

  • Dias Ganhos

    28

Tudo que foi postado por Thanael

  1. Thanael

    CELERY

    Olá @Mega Extreme o código não esta conseguindo inserir os registros nessa tabela yahoo_raw_ohlcv_in, verifica se de fato existe a tabela no banco de dados.
  2. Olá Henrique tudo bem? Da uma olhada no comando de pivot_table do pandas, com ele você consegue realizar isso. Segue abaixo sua documentação Pivot Table Como funciona o Pivot Table Espero que isso lhe ajude
  3. Thanael

    achar uma string

    Olá @cmoreti tudo bem? Uma maneira que talvez funcione é obter o texto que está entre UPDATE e SET. tu pode usar o find, para obter a posição do UPDATE e do SET ai obter somente a string que está entre este espaço. comando = UPDATE `cidade_ns_prod`.`nomedaminhatabela` SET `campo` = 'ca' where (`campo_id` = '3151995'); Realizando isso ficaria teste = `cidade_ns_prod`.`nomedaminhatabela` Agora basta verificar obter uma lista desta string utilizando o .split('.') e passando aquele . que separa as duas palavras que o seu resultado será. lista = [`cidade_ns_prod`, `nomedaminhatabela`] Ai tu já sabe que o index que tu procura é 0. Espero que dessa maneira funcione, caso mesmo assim não funcione, ai procuro outro jeito ou me avisa que tento criar o código em si e lhe enviar.
  4. Antes de explicar como agendar o desligamento da sua máquina através do Python gostaria de lhe fazer uma breve provocação. "Quantas vezes você teve de deixar seu computador ligado a noite toda para finalizar um download ou alguma atividade? " Provável que assim como eu você já teve de fazer isso diversas vezes e acabou deixando seu computador ligado a noite toda sendo que a atividade que estava realizando levaria algumas poucas horas. Com base nisso pesquisei algumas maneiras de agendar o desligamento da maquina via comando e consegui encontrar a solução para os meus problemas que consiste no comando mágico que é: shutdowmn -s -t 3600 Lembrando que coloquei 3600 acima para que meu computador seja desligado após 1 hora (3600 segundos). Mas agora você deve estar se perguntando "Mas onde é que o Python entra nisso ? " Então provável que em algum momento você enjoe de toda vez ter que abrir o CMD (prompt de comando) digitar o comando e calcular qual o período desejado e converter isso para segundos.... E é ai que o Python entra, possibilitando automatizar todos esses processos, portanto vou adicionar abaixo uma ideia de código para realizar este mesmo processo, com um código muito simples. import os while True: numero_decisao = int(input('''Agendar Desligamento da Máquina Escolha entre minutos e horas [0] - Minutos [1] - Horas Sua decisão: ''')) if numero_decisao == 0: decisao = 'Minutos' elif numero_decisao == 1: decisao = 'Horas' else: print('Digite um número válido!') continue print(f'\nÓtimo você selecionou {decisao}\n') break tempo = int(input(f'Após quantos(as) {decisao} deseja que seu computador seja desligado? ')) print(f'\nÓtimo seu computador será desligado após {tempo} {decisao}\n\n') if decisao == 'Minutos': tempo = tempo*60 elif decisao == 'Horas': tempo = (tempo*60)*60 os.system(f'shutdown -s -t {tempo}') cancelar = int(input('''Deseja cancelar o desligamento? [0] - Sim [1] - Não Sua resposta: ''')) if cancelar == 0: os.system('shutdown -a') print('\nPronto! Seu Agendamento foi cancelado\n') else: print('\nObrigado por utilizar este programa!\n') Exemplo de Output (Saída) Lembrando que esta é uma maneira de realizar esse processo, existem diversas outras, algumas mais práticas com a utilização de funções e tratamento de erros. Porém neste momento gostaria apenas de passar uma maneira com uma lógica e código mais simples para facilitar na compreensão. Caso queira criar algo mais detalhado com uma interface gráfica simples sugiro dar uma olhada neste repositório. Espero que esse conteúdo tenha lhe ajudado de alguma forma!
  5. Olá @bmellorj tudo bem? Então, nos processos que utilizei o pyautogui eram processos que não necessitava de nenhuma verificação, mas como no seu caso é necessário realizar algumas verificações, como por exemplo encontrar os botões e verificar se foram clicados. Não sei exatamente como lhe ajudar, e nem se o pyautogui é a melhor ferramenta para isso. Ouço muita gente comentar de utilizar o Selenium para realizar as automações, sugiro dar uma pesquisada nele para ver se pode ser utilizado e lhe ajudar. Infelizmente eu não vou conseguir lhe ajudar neste processo, vamos torcer para que alguém consiga lhe ajudar nesta sua automação. 😅
  6. Olá @almeida tudo bem? Pelo que entendi no seu código você ja possui armazenado a quantidade de votos de cada candidato correto? portanto basta apenas realizar um if e printar quem ganhou. if candidato_1 > candidato_2: print(f'O candidato 1 ganhou, possuindo {candidato_1} votos') elif candidato_1 == candidato_2: print(f'Houve um Empate entre os 2 candidatos') else: print(f'O candidato 2 ganhou, possuindo {candidato_2} votos') Espero que seja isso que precise, caso contrario estou a disposição para lhe ajudar.
  7. Olá @Ramon Arpoador tudo bem? Existem diversas formas de realizar isso, irei deixar abaixo alguns artigos que possam lhe ajudar com sua necessidade. ENVIAR E-MAIL PELO GMAIL UTILIZANDO PYTHON -> Link ENVIAR MENSAGENS AUTOMÁTICAS NO WHATSAPP USANDO PYTHON -> Link ENVIAR MENSAGEM AO USUÁRIO DO TELEGRAM USANDO PYTHON -> Link Como enviar um SMS em Python -> Link Automatizar Envio de Mensagens no WhatsApp Usando Python (Vídeo) -> Link Estas são algumas ideias de como realizar isso, espero que lhe ajude 👍
  8. Olá @Vini_Villela tudo bem? Segue abaixo uma maneira de ajustar o código para funcionar do jeito que precisa. prefixes = 'JKLMNOPQ' suffix = 'ack' for letter in prefixes: if letter in ['O','Q']: print(f'{letter}u{suffix}') else: print(letter + suffix)
  9. Olá @Elciovasc019 tudo bem? O código retorna false, pois o variável in dicionário, verifica se o valor está presente nas chave do dicionário. Para ajustar seu código basta, adicionar dicionario .values no seu in, quando quiser verificar um valor ficando assim.
  10. Olá @Oliver79 tudo bem? Acredito que para criar essas ferramentas WEB com python os melhores Frameworks são o Django e o Flask. Nunca estudei muito a fundo sobre eles, porém ouço muito que o Flask possui uma curva de aprendizagem mais baixa, e é o mais indicado para Desenvolvimento WEB de pequenos projetos. Já o Django trata-se do framework web python mais conhecido e muito mais robusto aumentando assim a possiblidade de coisas a controlar e a criar, porém com uma dificuldade um pouco maior para aprender. Lembrando que isso é para desenvolver o Back end de sua aplicação.
  11. Thanael

    erro count

    Entendi, da uma olhada no nome do seu Database, verifica se as informações de conexões estão de fato corretas. Acredito que o nome do seu database deveria ser 'crud' ou o .py faz parte do nome ?
  12. Olá você que chegou aqui deve estar curioso para saber quais as maneiras para printar variaveis em python, portanto vou lhe mostrar algumas das maneiras que podemos utilizar para printar variáveis e mostrar qual delas eu utilizo. Obs: Já vou lhe dar um Spoiler, a ultima maneira mostrada é a mais interessante. Maneira tradicional utilizando virgula (,) A maneira mais comum de printar variáveis e concatenar string é utilizando a , segue abaixo um exemplo de sua utilização nome = 'Thanael' linguagem = 'Python' print('meu nome é ',nome, 'e gosto da linguagem ', linguagem) # meu nome é Thanael e gosto da linguagem Python Utilizando format strings Essa é uma maneira mais versátil onde você concatena a variável no meio do texto sem ter de ficar usando as virgulas e aspas nome = 'Thanael' linguagem = 'Python' print('meu nome é {} e gosto da linguagem {}'.format(nome,linguagem)) # meu nome é Thanael e gosto da linguagem Python Utilizando f'strings' Agora vou mostrar uma maneira que eu particularmente gosto e utilizo mais, por ser mais rápida e deixar o código mais fácil de ser interpretado. Esta maneira é semelhante ao format string porém você especifica a variável que será mostrada dentro do { variavel }. Segue abaixo alguns exemplos nome = 'Thanael' linguagem = 'Python' print(f'meu nome é {nome} e gosto da linguagem {linguagem}') # meu nome é Thanael e gosto da linguagem Python Perceba como o código fica mais simples é você sabe qual variável será concatenada ao texto simplesmente vendo seu nome dentro dos { }. E você já conhecia essas maneiras ? Qual delas você utiliza e gosta mais ?
  13. Olá @Lumiere tudo bem ? Obrigado pela paciência. Vamos lá existem diversas maneiras de obter somente o numero que você deseja, a que eu sugiro é verificar se este padrão (NOME - NUMERO - ITR - 2022 - TEXTO - Recibo.pdf) segue para todos os registros, caso siga, basta utilizar o seguinte. string = 'JasperReports - 13079980-ITR-2022-ORIGI-Recibo.pdf' # Tranformar em uma lista com o SPLIT utilizando como separador o ' - ' # lista = ['JasperReports ', ' 13079980', 'ITR', '2022', 'ORIGI', 'Recibo.pdf'] lista = string.split('-') # Obter o numero com base na sua posição. # numero = ' 13079980' numero = lista[1] # Remover este espaço em branco que existe com o STRIP() numero = numero.strip() Para deixar mais simples tu pode simplesmente fazer string = 'JasperReports - 13079980-ITR-2022-ORIGI-Recibo.pdf' numero = string.split('-')[1].strip() A partir dai você já tem o número que deseja, portanto agora precisa criar a pasta com este nome import os path = f'C:\\Users\\thanael.butewicz\\Documents\\Data Science\\{numero}' os.makedir(path) Isso irá criar a pasta cujo nome será o numero armazenado anteriormente. Agora basta mover o arquivo para esta pasta nova. import shutil # caminho original do arquivo File seria o nome do arquivo (aquele extenso.pdf) original = caminho_arquivo_original target = caminho_desejado_aquele_criado # Mover shutil.move(original, target) A grosso modo isto é o que precisa para realizar essa automação, basta adicionar dentro de um IF e pronto. Espero que isso lhe ajude, também estou a disposição para lhe ajudar caso necessite.
  14. Thanael

    erro count

    Olá @nilton santos poderia mandar um print do erro que aconteceu ? Somente com estas informações não consigo lhe ajudar, o que pode estar acontecendo é o fato do db não estar sendo passado como parâmetro, sugiro passar a conexão como parâmetro ou criar a conexão com o banco dentro da função. Porém se você puder mandar um print com o erro, ai conseguirei lhe ajudar com mais precisão.
  15. Olá @laurino então pelo que entendi aqui o find_element é uma função da biblioteca selenium, que você importou no inicio do seu código. Tenta ajustar o seu código onde você chama o find_element para webdriver.find_element e testa para ver se irá funcionar, caso mesmo assim não funcione, sugiro que você pesquise um pouco mais sobre essa biblioteca para entender qual a maneira correta de utilizar essa função. Segue abaixo alguns links que possam lhe ajudar nos seus estudos. Encontrando Elementos Web | Selenium Começando | Selenium Documentação Selenium Python | Começando Documentação Selenium Python | Encontrando Elementos
  16. Olá @laurino tudo bem? Seu erro está no fato do find_element estar sendo chamado antes mesmo de ser criado, ou seja ele ainda não existe. Sugiro verificar se essa função find_element( ) está de fato sendo criada, caso ela esteja sendo criada abaixo do código, recomendo mover ela para o topo, pois é uma boa prática criar as funções logo no inicio do seu código. Tenta realizar essas mudanças e diz se funcionou, caso não funcione estou a disposição para lhe ajudar a encontrar a solução. 👍
  17. Thanael

    Mover pastas - Python

    Olá @vmatheus tudo bem ? Você consegue sim executar isso através de um script python. Segue abaixo uma lógica para realizar isso. Ler o arquivo de texto (.txt) com o python e armazenar os nomes das pessoas em uma lista. Percorrer a pasta verificando os nomes dos arquivos. Um exemplo de código seria algo como import os import shutil #Lib para mover arquivos # Ler o arquivo txt contendo os nomes file_names = open('untitled.txt').read() # Exemplo do txt = 'teste1,teste2,teste3' # Criar uma lista com os nomes, se antentar ao separador entre os nomes no meu caso o separador é ',' file_names = file_names.split(',') # Salvar o caminho da pasta path = '/home/ec2-user/etls/Responder casa do DEV/' # Obter todos os arquivos desta pasta arquivos = os.listdir(path) # Percorrer por cada arquivo for file in arquivos: # Verificar se o arquivo está no arquivo de nomes if file not in file_names: print(f'O Arquivo {file} não está presente no arquivo de nomes, portanto irei move-lo') # Setar o caminho do arquivo original = path+file # Escolher para onde deseja enviar ele target = '/home/ec2-user/etls/Responder casa do DEV/Pasta DESEJADA' # Mover shutil.move(original, target) A grosso modo é praticamente isso que precisa ser realizado. Segue alguns links que possam lhe auxiliar. How to Move a File or Directory in Python, os.listdir() Espero que isso resolva sua dúvida caso contrario, estou a disposição para lhe ajudar. 👍
  18. Olá @cmoreti tudo bem? Para remover eles basta realizar o seguinte. string = 'CRCC\ITAUCORP-AM/JRS' string.replace('\\','teste') No python para ler o \ como \ tu deve utilizar \ \ , pois somente uma contrabarra diz ao python que você usará algum comando como \n , que realiza uma quebra de linha na string. Sendo assim basta utilizar duas \ \ que você sinalizará que se trata de uma contrabarra. Espero que isso lhe ajude, também estou a disposição para lhe ajudar no que precisar. 👍
  19. Thanael

    Agrupar arquivos txt

    Olá tudo bem? Você conseguiu acessar de fato os arquivos ? seu erro está no fato dele não encontrar o arquivo ou pasta. Verifica se o caminho está correto. Uma dica que acho que pode lhe ajudar e buscar somente por arquivos .txt presentes neste caminho, para isto basta realizar o seguinte. import re import os path = 'c://Moreti//ArquivosProjetoPython//SIGBANCOS//' # path = r'c:/Moreti/ArquivosProjetoPython/SIGBANCOS/' #For para percorrer dentro da pasta passada anteriormente for file in os.listdir(path): #If verificando se o arquivo e extensão .txt if re.search('txt', file): #Abrir o arquivo with open(file, 'rb') as pdf: print(file) # Salvar o texto dele em uma variavel, array ou dicionario # Criar um novo arquivo passando todos conteudos dos txt armazenado Eu utilizaria esta lógica acima, espero que talvez possa lhe dar uma ideia, caso contrario estou a disposição para lhe auxiliar no que precisar.
  20. Olá tudo bem ? Poderia explicar mais a fundo qual o processo que você esta executando, pois de fato o pyautogui ele realiza comandos controlando seu mouse e teclado, porém pode ser que o processo que você esteja executando necessite de alguma interação que você não consiga realizar apenas com o pyautogui. Se puder me explicar mais afundo o seu processo de automação, exemplo Abrir o aplicativo Clicar no botão LAUCHER Clicar no botão REPORTS e assim por diante. Como você sabe que o botão REPORTS foi clicado? é algo somente visual ? o programa não avança ? se puder responder essas perguntas podemos procurar uma solução para lhe ajudar.
  21. Olá @Ana_t tudo bem? Problema do código está na utilização das funções, você não a está chamando corretamente e nem passando os parâmetros que ela necessita. Veja abaixo um exemplo de como deveria ser a chamada da função. # O sb e o I são parametros que devem ser passados quando chamar a função def vinss(sb): i = 0.08 return sb*i # Exemplo de chamar a função y = vinss(x,i) # Perceba que você precisa passar os parametros quando chama a função Portanto será necessário ajustar seu código passando os parâmetros para que as funções funcionem adequadamente, lembrando que mesmo se não tiver parâmetros deve-se chamar ela adicionando o ( ) ao final. Segue abaixo como ficaria seu código ajustado. import math def sb(g,h): return float(g)*float(h) def vinss(sb): return sb *0.08 def vir(sb): return sb * 0.11 def vsd(sb): return sb * 0.05 def sl(sb,vinss,vir,vsd): return sb - (vinss + vir + vsd) g = input("Digite quanto você ganha por hora:\n") h = input("Digite o número de horas trabalhadas no mês:\n") # Chamar as funções # Perceba como é chamada a função, passando parametros bruto = sb(g,h) inss = vinss(bruto) ir = vir(bruto) sd = vsd(bruto) liquido = sl(bruto,inss,ir,sd) Espero que isso resolva sua dúvida, sugiro também pesquisar mais sobre como utilizar funções no Python, segue abaixo um artigo do W3Schools que pode ser de muita ajuda. Artigo: Python Functions Qualquer coisa estou a disposição para lhe ajudar. 👍
  22. Olá pessoal! Hoje vou comentar um pouco com vocês sobre como estilizar um DataFrame e sim, é possível estilizar um DataFrame, para apresentar dados ou até mesmo conseguir visualizar melhor seus dados. Pandas.Style Essa é a função do pandas onde conseguimos estilizar um DataFrame para facilitar na visualização de seus dados. A partir dela conseguimos especificar diversos atributos a partes do DataFrame como por exemplo, cor de fundo da celula, cor das letras, fonte das letras, tamanhos, negrito e muito mais formatações, para entender um pouco mais sobre o que podemos fazer sugiro que leiam a documentação. Documentação: Table Visualization Segue abaixo um exemplo do que pode ser feito. Acima temos um DataFrame contendo dados de indicadores de ações, porém com o DataFrame do jeito que está é muito difícil você conseguir visualizar pontos como, "Quais ações tem os melhores indicadores de rentabilidade (ROE, ROIC, M. EBITDA)", ou até mesmo entender quais as empresas que estão mais alavancadas (Dív Líquida/EBITDA), é claro que poderíamos ordenar os dados usando um sort_values( ), porém ainda ficaria complicado para compreendermos os dados caso seu número seja muito grande. Portanto vamos melhorar a visualização destes dados. def good_value(): return 'background-color: #2E924C; font-weight: bold' def medium_value(): return 'background-color: #FFFFE5; color:black; opacity: 95%' def bad_value(): return 'background-color: red; font-weight: bold' df_view = ( df_view.style # Ajustar as casas decimais .format('{:.2f}', na_rep='MISS',subset=[coluna for coluna in df_view.columns if coluna not in ('acao','Subsetor de Atuação','link')]) .format('{:.2f}%', na_rep='MISS',subset=['Valorização (12m) %','M. EBITDA %','ROE %','ROIC %','CAGR Receitas 5 anos %','CAGR Lucros 5 anos %']) # Indicadores de Preço .applymap(lambda v: good_value() if (v > 0) and (v < 20) else medium_value(), subset=['P/L']) .applymap(lambda v: good_value() if (v > 2) else (medium_value() if v >= 0 and v <= 2 else bad_value()), subset=['P/VP']) #Indicadores de Crescimento .applymap(lambda v: good_value() if (v < 1) and (v > 0) else (medium_value() if v >= 2 and v <= 2 else bad_value()),subset=['PEG Ratio']) # Rentabilidade .background_gradient(cmap='YlGn',subset=['M. EBITDA %','ROE %','ROIC %']) # Indicadores de Individamentos .applymap(lambda v: good_value() if (v < 1) else (medium_value() if v >= 1 and v<= 3 else bad_value()), subset=['Dív. líquida/EBITDA']) ) Como exemplificado no código acima, podemos setar diversas formatações para o DataFrame, ou seja, as possibilidades são muitas, acima realizei algumas configurações de visualização, como ajustar cores conforme os valores de alguns indicadores, ou até mesmo colorir toda a coluna de acordo com seus valores, indo do menor ao maior. Segue abaixo uma imagem de como ficou esse DataFrame depois de estiliza-lo. Perceba que agora ficou muito mais fácil de visualizar os dados e identificar as ações que possuem maiores indicadores de rentabilidade, ou até mesmo quais ações estão mais alavancadas. Recomendo muito utilizar essas formatações caso tenha que apresentar os dados ou até mesmo caso queira visualizar melhor seus dados. Você já conhecia essa função de estilizar DataFrames do pandas?
  23. Olá @web_trechosbr tudo bem ? Não entendi muito bem sua pergunta, mas caso você deseje apenas conseguir o maior ou menor valor de um array, basta usar as funções min e max do python. Exemplo lista = [1,2,4,7,98,2,10] maior = max(lista) # Obtera o maior valor menor = min(lista) # Obtera o menor valor Caso não seja isso, poderia me explicar novamente o que deseja 😅
  24. Thanael

    paginar

    Olá @cmoreti conseguiu resolver ? Sugiro realizar a leitura dos dados através do comando pd.read_sql( ), segue o link para sua documentação df = pd.read_sql('select * from table', conexao_banco) Se mesmo assim ficar muito pesado a consulta você pode ajustar a consulta SQL para pegar por exemplo 1000 registros com um 'SELECT * FROM table LIMIT 1000'
  25. Olá Pessoal, hoje vou mostrar a vocês algumas maneiras de criar um DataFrame com a biblioteca Pandas do Python 😀. Antes de mostrar essas maneiras, vou comentar brevemente sobre o que é um DataFrame. Um DataFrame consiste em uma estrutura na qual conseguimos realizar manipulação e analise de dados através do Python, ele se assemelha muito a uma tabela ou planilha no excel, segue abaixo um exemplo de visualização de um DataFrame. Maneiras de se criar um DataFrame Lembre-se de importar a biblioteca com um import pandas as pd CSV Vamos começar com a maneira mais popular de se criar um DataFrame que é a partir de um arquivo .csv para isso basta que tenhamos o caminho para o arquivo .csv, caso queira descobrir mais sobre seus parâmetros sugiro ler sua documentação df = pd.read_csv('arquivo.csv') SQL Uma maneira muito utilizada para criar um DataFrame é a partir de consultas em banco de dados, para realizar isso basta que tenhamos a conexão com o banco de dados utilizados. Um ponto importante é descobrir como criar a conexão com o seu banco de dados, para isso basta pesquisar termos como "Conectar PostgresQL com python" ou até mesmo "Firebird com Python" df = pd.read_sql('select * from table', conexao) Excel Para criarmos o DataFrame através de uma planilha do excel basta realizarmos o seguinte. df = pd.read_excel('arquivo.xlsx') Json Podemos criar DataFrames através de arquivos Json os quais são muito utilizados para transferência de dados via API, para isso basta fazermos. df = pd.read_json('arquivo.json') Dicionarios do Python Exato podemos criar DataFrames com base em dicionários python, para isso precisamos ter um dicionário devidamente estruturado, uma sugestão é ler a documentação e entender quais as formas de estruturar o dicionário dicionario = {'nome':['carlos','thanael'], 'idade':[20,18]} df = pd.DataFrame(dicionario) HTML Isso mesmo podemos até criar DataFrame com base em tabelas que estão dentro de um HTML, por exemplo de um site. Lembrando que esta maneira trás uma lista com todos os DataFrames encontrados dentro de um site, portanto deve-se analisar qual o DataFrame corresponde a tabela que você deseja. Também precisamos nos atentar a integridade dos dados, visto que esta pode não ser a melhor maneira de trazer os dados. dfs = pd.read_html('https://www.terra.com.br/esportes/futebol/brasileiro-serie-a/tabela/') df = dfs[0] Estas são somente algumas das diversas maneiras que existem de se criar um DataFrame, caso queira conhecer mais digite pd.read e veja o complete que o pandas sugere, ali mostram as mais diversas formas de se criar um DataFrame. Outro ponto importante é que cada maneira possui sua particularidade, portanto sugiro sempre procurar a documentação da maneira que utilizar para criar seu DataFrame da forma mais adequada possível. E você já conhecia essas maneiras de criar o DataFrame? Conhece e utiliza outra maneiras de criar DataFrames? Compartilha conosco deixando ela em seu comentário logo abaixo.
×
×
  • Create New...