Jump to content

Criar pastas usando parte do nome do arquivo e mover apenas o arquivo pra essa pasta (em python)


Lumiere

Postagens Recomendadas

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)

 

  • Curtir 1
Link to comment
Compartilhe em outros sites

  • 2 weeks later...
  • Pessoal da TecnoSpeed

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
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...