Lumiere Posted September 1, 2022 Share Posted September 1, 2022 Estou iniciando em python, já consegui listar os arquivos mas não sei pegar só a parte que quero do nome e criar a pasta exemplo: Os arquivos vem com esse nome, JasperReports - 14000369-ITR-2022-ORIGI-Recibo.pdf JasperReports - 14000369-ITR-2022-ORIGI-Declaracao.pdf JasperReports - 13079980-ITR-2022-ORIGI-Recibo.pdf JasperReports - 13079980-ITR-2022-ORIGI-Declaracao.pdf A parte que preciso do nome é a que tem esse código de 8 dígitos " 14000369" é a parte do nome do arquivo que não se repete, preciso criar uma pasta com ele, e mover os arquivos pra ela, passar pra o próximo arquivo e fazer o mesmo, são mais de 400 arquivos por isso quero automatizar, aqui vai uma parte do que consegui fazer from importlib.resources import path import os import os.path from pathlib import Path caminho = r"C:\Users\amanda.regina.PROCONT\Desktop\move\itr" lista_arquivos = os.listdir(caminho) for arquivo in lista_arquivos: print(arquivo) #lista_arquivos = os.listdir(caminho+"\itr") path = Path(caminho) for arquivo_nome in path.glob('*13079980*'): print(arquivo_nome) 1 Link to comment Share on other sites More sharing options...
Pessoal da TecnoSpeed Thanael Posted September 15, 2022 Pessoal da TecnoSpeed Share Posted September 15, 2022 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. 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