Jump to content

Loop no Python


vgcordeiro

Postagens Recomendadas

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

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

  • Pessoal da TecnoSpeed

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.

 image.png
 

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

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.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...