Consultar arquivos xml em uma pasta

1 resposta
J

Eu tenho uma pasta onde contem vários arquivos de xml de NFe, dai estou tentando fazer em python que o sistema analise os arquivos xml daquela pasta e encontre um campo especifico, e se encontrar
no xml mova para outra pasta.
Dai já consegui realizar a iteração com o elementTree, onde eu encontro no xml o valor que eu preciso, mas minha dúvida agora é como posso fazer para que ele analise todos os arquivos pois até agora só consegui fazer ele analisar apenas 1.
Se ele encontrar o campo que eu quero, quero que ele mova para uma pasta este arquivo xml.
Mas ta osso. kkkk

import shutil
import xml.etree.ElementTree as ET
import os

root = tree.getroot()

NFe = root.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}NFe’)

infNFe = NFe.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}infNFe’)

transp = infNFe.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}transp’)

modFrete = transp.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}modFrete’)

protNFe = root.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}protNFe’)

infProt = protNFe.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}infProt’)

chNFe = infProt.find(’{<a href="http://www.portalfiscal.inf.br/nfe">http://www.portalfiscal.inf.br/nfe</a>}chNFe’)

if modFrete.text == ‘1’:

print(modFrete.text)

1 Resposta

Tuna

Uma solução rápida e eficiente seria transformar todos os elementos do diretório em uma lista, depois você pode percorrer a lista com um for e tomar as medidas cabíveis, por exemplo, mover ou não o seu arquivo.

Você pode usar o modulo os, ele tem um função pronta, veja o exemplo abaixo.

import os    

caminho = os.getcwd()  # os.getcwd() retorna o path (caminho) do diretório atual.

lista_diretorio = os.listdir(caminho)  #os.listdir(path) retorna uma lista de todos os itens do diretório atual.

#percorrendo a lista de itens do diretorio atual.
for index in lista_diretorio:
    print(index)
Criado 6 de maio de 2019
Ultima resposta 9 de mai. de 2019
Respostas 1
Participantes 2