Jump to content

cmoreti

Membros
  • Contagem de Conteúdo

    13
  • Ingressou

  • Última visita

Informações Pessoais

  • Cidade
    São Paulo
  • Estado
    São Paulo (SP)

Clientes & Parceiros

  • Você é um cliente TecnoSpeed?
    Não
  • Você é um parceiro da Casa do Desenvolvedor?
    Não

Conquistas de cmoreti

  • Positividade Raro

Emblemas Recentes

4

Reputação na Comunidade

  1. Pessoal, minha barra de progresso só é atualizada quando o processo termina, tanto para criar quanto para atualizar a pasta: Podem ajudar por favor? def atualizar_repositorio_git(usuario, senha, caminhoGit): senha_codificada = quote(senha, safe='') url_repo = f'http://{usuario}:{senha_codificada}@azuredevops:MeuCaminhoURL/_git/conversor' caminhoLog = os.path.join(caminhoGit, 'clone_log.txt') # Verificar se o diretório de destino já existe e não está vazio if os.path.exists(caminhoGit) and os.listdir(caminhoGit): print("Diretório de destino já existe e não está vazio.") return # Executar o comando de clone do repositório comando_git = f"git clone {url_repo} {caminhoGit}" # Executar o comando com a barra de progresso print("Atualizando Repositório:") with tqdm(total=100, ncols=80, unit="%") as pbar: process = subprocess.Popen(comando_git, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True) for line in process.stdout: output = line.decode("utf-8").strip() if "Receiving objects" in output: percentage = int(output.split()[0]) pbar.update(percentage - pbar.n) pbar.close() if process.returncode == 0: print("Repositório atualizado com sucesso.") else: print("Erro ao atualizar o repositório.") print("Erro:", process.stdout.read().decode("utf-8")) print(f"Atualização do repositório concluída. Log salvo em: {caminhoLog}") Obrigado
  2. cmoreti

    achar uma string

    @Thanael, o comando vem sempre da forma que eu falei que inclusive vc citou na sua resposta, fiz de outra forma e funcionou! O que eu quero é fazer uma automação, removeram acesso a base de dados de uma galera, ficam me pedindo para executar update, delete e insert a maior parte do dia, essa galera é de suporte, inviável, resolvi escrever essa automação. Essa parte do código está pronta e funcional! Vou terminar ela implementando FileSystemWatcher, assim eles vão salvar a query em um txt, colocar na pasta para esse arquivo ser processado. Tomei todos os cuidados principalmente no update e delete checando se tem a clausula where. ficou bem legal!
  3. cmoreti

    achar uma string

    Pessoal, estou tentando achar uma string dentro da outra. To tentando com regex. Essa é minha string: comando = UPDATE `cidade_ns_prod`.`nomedaminhatabela` SET `campo` = 'ca' where (`campo_id` = '3151995'); Eu preciso trazer a substring cidade_ns_prod, o problema é que cidade é variante... então pode ser saopaulo_ns_prod, sorocaba_ns_prod, saojoaodemeriti_ns_prod, itapita_ns_prod, etc... Alguém pode me ajudar? Obrigado
  4. Bom dia Pessoal, estou enfrentando um problema que: Foi cadastrado barra invertida no campo da tabela. Esses são alguns dos registros CRCC\ENSEG-AM/JRS CRCC\CIA GRALHA AZUL-AM/JRS CRCC\BANCO FIAT-AM/JRS CRCC\ITAUSEG PART-AM/JRS CRCC\ITAU CORRETORA-AM/JRS CRCC\ITAUSA INV.-AM/JRS CRCC\ITAUCORP-AM/JRS REC DE JUROS SOBRE CAPITA PROPRIO E DIVIDENDOS/CAI XAPAR\SUBSIDIARIASCRCC\KINEA -AM/JRS Na hora de gerar meus registros no arquivo tomo o seguinte erro: File "pandas\_libs\writers.pyx", line 72, in pandas._libs.writers.write_csv_rows _csv.Error: need to escape, but no escapechar set, justamente por ter a barra invertida. Já tentei de varias maneiras sair, todas sem sucesso e, se conseguir trazer para o arquivo da mesma forma que está no registro é melhor! Tentei... string.replace("\", "/") string.replace("\", "/", regex=True) Alguém pode ajudar por favor? Obrigado Claudio Moreti
  5. Pessoal, estou tentando agrupar arquivos txt e não estou conseguindo. Ou seja... tenho vários arquivos txt e preciso colocar o conteúdo em apenas um. txt1.txt, txt2.txt, txt3.txt, txt4.txt, txt5.txt .... txt200.txt pegar todos esses caras e criar um arquivo com todo o conteúdo txtagrupado.txt Estou tentando fazer assim: from os import chdir, getcwd, listdir pasta = r'c:/Moreti/ArquivosProjetoPython/SIGBANCOS/' chdir(pasta) for arquivo in listdir(): print(arquivo) with open( 'ARQUIVO_DE_PLANOS_DE_CONTAS.txt', 'a' ) as outfile: for nomes in arquivo: with open( nomes ) as infile: outfile.write( infile.read() ) outfile.write( "\n" ) tomo o erro: FileNotFoundError: [Errno 2] No such file or directory: 'S' Obrigado Claudio Moreti
  6. cmoreti

    paginar

    @Thanael, encontrei a forma. Eu estava tentando passar uma variável dentro de uma string, não ia conseguir nunca da forma que estava tentando faze. Estou lendo essa linha do txt: WITH pg AS (SELECT ROW_NUMBER() OVER(ORDER BY id ASC) AS RowNumber, * FROM PlanoContas) SELECT * FROM pg WHERE RowNumber BETWEEN {PagIni} AND {PagFim} No Python queria passar os valores para PagIni e PagFim, acontece que toda a linha é uma string. A solução foi usar o replace ficando assim: query = conteudoArquivo.replace("{PagIni}", f'{PagIni}').replace("{PagFim}", f'{PagFim}') Obtive sucesso na execução: Obrigado pela ajuda
  7. cmoreti

    paginar

    @Thanael, estou tentando implementar a paginação, estou tomando esse erro e, acredito ser problema nas variáveis. pandas.io.sql.DatabaseError: Execution failed on sql 'WITH pg AS (SELECT ROW_NUMBER() OVER(ORDER BY id ASC) AS RowNumber, * FROM PlanoContas) SELECT * FROM pg WHERE RowNumber BETWEEN {PagIni} AND {PagFim} ': ('42000', '[42000] [Microsoft][ODBC Driver 17 for SQL Server]Erro de sintaxe, violação de permissão ou outro erro não específico (0) (SQLExecDirectW)') ao executar essa linha: df = pd.read_sql(query, conn) Meu código está assim: As variáveis em vermelho eu estou lendo de um arquivo txt. WITH pg AS (SELECT ROW_NUMBER() OVER(ORDER BY id ASC) AS RowNumber, * FROM PlanoContas) SELECT * FROM pg WHERE RowNumber BETWEEN {PagIni} AND {PagFim} SELECT count(*) FROM PlanoContas Estou lendo a primeira linha e armazenando na variável conteudoArquivo Depois leio a segunda linha e armazeno na variável conteudoCount Pagina = 1 PagIni =1 PagFim = 1000 QtdPg = 1000 # Pega a quantidade de registros na tabela e divide por 1000 cursor.execute(f'' + conteudoCount + '') count = list(cursor)[0] QtdPg= count[0]/1000 print(QtdPg) while (Pagina <= QtdPg😞 query = (f'' + conteudoArquivo + '') df = pd.read_sql(query, conn) NomeArquivoPasta = arquivo if arquivo[0:9] == "SIGBANCOS": df.to_csv(r"C:/Moreti/ArquivosProjetoPython/" + arquivo[0:9] + "/" + NomeArquivoPasta, index=False, header=True, sep='|', quoting=1, encoding='utf8') elif x[0:12] == "SIGCARTORIOS": df.to_csv(r"C:/Moreti/ArquivosProjetoPython/" + arquivo[0:12] + "/" + NomeArquivoPasta, index=False, header=True, sep='|', quoting=1, encoding='utf8') else: df.to_csv(r"C:/Moreti/ArquivosProjetoPython/" + arquivo[0:6] + "/" + NomeArquivoPasta, index=False, header=True, sep='|', quoting=1, encoding='utf8') PagIni = PagFim + 1 PagFim = PagFim + QtdPg Pagina = Pagina + 1 conteudo.read() conteudo.close() Vc pode estar se perguntando... Pq eu não coloco esses nomes de arquivos dentro de um array ou lista? Pq esses nomes de arquivos mudam constantemente conforme o nome da Cidade. Como isso é uma automação se necessário mudar o nome do arquivo não preciso alterar o fonte, apenas altera o nome do arquivo. A ideia é: criar o arquivo com o nome da referida cidade e sua query dentro. Nesse caso preciso paginar pq estou tomando erro de memória. Algumas tabelas são bem grandes. Antes de mais nada... Já fui desenvolvedor no passado, escrevi códigos em VB6, VB.NET, C#, hoje trabalho como DBA, Python é uma novidade nos meus aprendizados. Vc pode me ajudar por favor? grato por sua paciência.
  8. cmoreti

    paginar

    Oi @Thanael, eu ainda não consegui resolver, não me expressei bem na pergunta e, o SGDB que uso é Sql Server. Escrevi outra forma de paginar, vou ver se sobra um tempo para implementar no Python. Por hora obrigado
  9. @Thanael, obrigado pela resposta, Não consegui rodar meu código ainda, se eu fizer como vc colocou roda tranquilamente, dx eu tentar te explicar... a minha query fica em um arquivo txt, preciso ler esse arquivo e executar minha query. Seguindo o seu exemplo meu código está assim: Dentro do arquivo: Nome do arquivo = conteudoArquivo 'SELECT * FROM TABLE WHERE numero = {variavel} No Python df = pd.read_sql(f'conteudoArquivo' , conexao) Já tentei concatenar df = pd.read_sql(f'' + conteudoArquivo + '' , conexao) Obrigado
  10. Pessoal, eu consigo rodar uma query escrita no sql server e executar ela no Python? tipo isso: Declare @teste as Int = 200 SELECT* FROM MinhaTabela WHERE MeuCampo = @teste; Como eu executo essa query no Python? Obrigado
  11. cmoreti

    paginar

    Pessoal, tenho um select que está pegando a tabela inteira, sem filtro. Select * from tabela, está estourando a memória. Já fiz um script para paginar, funcionar no sql. Preciso implementar no Python. Alguém pode me auxiliar por favor? Uso Pandas Obrigado
  12. Pessoal, tenho uma tarefa repetitiva todas as semanas, é gerar mais de 200 arquivos. No início comecei a gerar pelo Sql Server SSIS, muito demorado. escrevi um Python que me facilitou bem a vida, porém um pouco demorado, em torno de 1h e 1/2, sou iniciante nessa plataforma. Escrevi esse código: import pyodbc import pandas as pd conn = pyodbc.connect( 'DRIVER={ODBC Driver 17 for SQL Server};SERVER=MinhaInstancia;DATABASE=MeuDataBase;UID=MeuUsuario;PWD=MinhaSenha') cursor = conn.cursor() NomeArquivo = 'Nome_Do_Meu_Arquivo' query = "select * FROM Tabela" df = pd.read_sql(query, conn) df.to_csv(r"C:/ArquivosProjetoPython/bancos/" + NomeArquivo + "csv", index=False, header=True, sep='|', quoting=1) Preciso automatizar essa rotina, Eu tenho na minha pasta vários arquivos com a query dentro. Preciso Ler arquivo por arquivo e setar uma variável no código acima. Por exemplo: Na variável NomeArquivo eu preciso pegar o nome do arquivo, nesse caso (Nome_Do_Meu_Arquivo) na pasta e setar nessa variável. Na variável query eu preciso pegar a query que consta dentro do arquivo Nome_Do_Meu_Arquivo e setar nessa variável. Preciso fazer isso em n arquivos. Todos os arquivos ficam na mesma pasta. Alguém pode me ajudar por favor? Lembrando. Sou iniciante na linguagem. Obrigado
×
×
  • Create New...