vgcordeiro Posted January 23 Share Posted January 23 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 Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted January 23 Pessoal da TecnoSpeed Share Posted January 23 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 Share on other sites More sharing options...
vgcordeiro Posted January 24 Author Share Posted January 24 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 Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted January 24 Pessoal da TecnoSpeed Share Posted January 24 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 Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted January 24 Pessoal da TecnoSpeed Share Posted January 24 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 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now