vgcordeiro Postado Janeiro 23, 2023 Compartilhar Postado Janeiro 23, 2023 Alguém consegue me ajudar a colocar um loop nesse código? Ponto relevante: Preciso que isso rode apenas 30 vezes. mover_arquivo = ('C:\LerPDF\Mover_Arquivos\Macro_Mover_Arquivos.xlsm') df_mover_arquivo = pd.read_excel(mover_arquivo,sheet_name='Nomes') #print(df_mover_arquivo) #['Lista'] Lista = df_mover_arquivo.loc[0,'Lista'] #print(Lista) wb = xw.Book('C:\LerPDF\Mover_Arquivos\Macro_Mover_Arquivos.xlsm') CopiarLinha = wb.macro('Módulo2.CopiarLinha') CopiarLinha() MoverArquivo = wb.macro('Módulo1.MoverArquivos') MoverArquivo() wb.save() time.sleep(5) merger = PdfFileMerger() path_to_files = r'C:\\LerPDF\\Mover_Arquivos\\Destino\\temp\\' for root, dirs, file_names in os.walk(path_to_files😞 for file_name in file_names: merger.append(path_to_files + file_name) merger.write('Teste.pdf') merger.close() dir = 'C:\LerPDF' arquivo_antigo = os.path.join(dir, 'Teste.pdf') #arquivo_novo = os.path.join(dir, 'Teste2.pdf') arquivo_novo = str(Lista) os.rename(arquivo_antigo, arquivo_novo) DeletaLinhaNome = wb.macro('Módulo6.DeletaLinhaNome') DeletaLinhaNome() DeletarPasta = wb.macro('Módulo3.btn_excluir_Click') DeletarPasta() wb.save() Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Janeiro 23, 2023 Pessoal da TecnoSpeed Compartilhar Postado Janeiro 23, 2023 Olá @vgcordeiro tudo bem ? Basta adicionar um FOR desta forma. for i in range(1,30): # adicionar seu codigo aqui. A grosso modo é isso, porém é bom se atentar se precisará que os valores alterem a cada iteração e tals. Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
vgcordeiro Postado Janeiro 24, 2023 Autor(a) Compartilhar Postado Janeiro 24, 2023 Thanael deu certo! Muiiiito obrigado. Sem querer abusar, mas nem sempre ele vai rodar 30 arquivos. Pode ser que rode menos como foi no caso do meu teste ai ele acaba dando um erro no final depois de rodar, por exemplo, 28. seria possível fazer alguma if no fim pra se der esse erro, ou mesmo quando rodar os 30 arquivos colocar uma Mensagem tipo concluído? Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Janeiro 24, 2023 Pessoal da TecnoSpeed Compartilhar Postado Janeiro 24, 2023 Olá @vgcordeiro vou lhe explicar uma forma que lhe sirva totalmente. Vou lhe explicar a teoria primeiro e um exemplo de código na prática. Pensamos da seguinte forma, você necessita realizar esse processo N vezes ou seja para quantos arquivos você ter correto ? Portanto basta ao invés de fazermos um número fixo de LOOPs, obtermos a quantidade de arquivos e realizar a quantidade de Iterações referentes a quantidade de arquivos, vou lhe mostrar um exemplo. import os path = 'C:\\Users\\thanael.butewicz\\Documents\\bokeh' for file in os.listdir(path): print(file) Desta forma ele vai obter uma lista contendo o nome dos arquivos presente na pasta definido nessa variável criada. Acredito que assim seu código irá funcionar independente do número de arquivos que existir na pasta 👍OBS: Lembre-se que no caminho é necessario passar o caminho todo, e usar \\ ao invés de \ caso contrario irá gerar um erro pois o \ é um caractere usado para formatar strings também. Enfim, testa ai e depois me diz se deu certo 😄 Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Pessoal da TecnoSpeed Thanael Postado Janeiro 24, 2023 Pessoal da TecnoSpeed Compartilhar Postado Janeiro 24, 2023 Você também pode adicionar print( ) ao final de cada iteração para sinalizar a conclusão de cada iteração. print(f"O arquivo {file} foi concluido") Link to comment Compartilhe em outros sites Outras opções de compartilhamento...
Postagens Recomendadas
Crie uma conta ou entre para comentar 😀
Você precisa ser um membro para deixar um comentário.
Crie a sua conta
Participe da nossa comunidade, crie sua conta.
Criar minha conta agoraÉ bem rápido!
Entrar
Você já tem uma conta?
Entrar agoraFaça o login agora.