-1
Hello I have a code that le two files one txt
and a XML
and then checks a string inside a list
THE XML:
<nfeProc xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe Id="NFe35200861974911000104550010000742491174625832" versao="4.00">
<ide>
...
</ide>
<emit>
...
</emit>
<dest>
...
</dest>
<det nItem="1">
<prod>
<cProd>20517-0</cProd>
<cEAN>7897748715180</cEAN>
<xProd>SAFEBLOCK FUSE BLOQUEADOR AUTOMOTIVO (COM FUSIVEL DE EMERGENCIA / SIRENE OPCIONAL)</xProd>
<NCM>85123000</NCM>
<CEST>0110000</CEST>
<CFOP>5401</CFOP>
<uCom>PC</uCom>
<qCom>20.0000</qCom>
</prod>
THE TXT:
0|7897748715180|||||20
My code:
def tratar_linha(linha):
dados = linha.strip('\n').split('|||||')
if len(dados) > 0:
return dados
return None
lista = []
#função do EAN
#------------------------------------------------------------------------------------------
def search (lista, valor):
return [(lista.index(x), x.index(valor)) for x in lista if valor in x]
#função do EAN
#------------------------------------------------------------------------------------------
#text = input("Coloque o diretorio do fisico: ").strip('"')
with open(r"C:\Users\Expedição\Downloads\74249.txt","r", encoding="utf8") as arquivo:
for linha in arquivo:
dado = tratar_linha(linha)
if dado is not None:
lista.append(dado)
#localiza arquivo,lista todos os itens
#------------------------------------------------------------------------------------------
#XML = input("Coloque o diretorio do XML: ").strip('"')
tree = ET.parse(r"C:\Users\Expedição\Downloads\74249.xml")
root = tree.getroot()
Contagem = 1
ns = {'nfe': 'http://www.portalfiscal.inf.br/nfe'}
for det in root.findall('.//nfe:det', ns):
nItem = det.attrib['nItem']
quantidade = det.find('.//nfe:qCom', ns).text.strip('000').strip('.')
EAN = det.find('.//nfe:cEAN', ns).text
if EAN is not None:
FEAN = "0|" + EAN
#importa XML, obtem os campos EAN,quatidade
#------------------------------------------------------------------------------------------
if search(lista, FEAN):
print(f"{Contagem} - EAN encontrado: {EAN}")
lista.remove(FEAN)
else:
print(f"{Contagem} - EAN INVALIDO: {EAN}")
I tried to use the lista.remove(FEAN)
but this giving this mistake and I do not know how to fix.
File "c:/Users/Expedição/Videos/python/Consulta.py", line 49, in <module>
lista.remove(FEAN)
ValueError: list.remove(x): x not in list
your proposal is well valid but in my case in particular I need the
lista
have the int tbm (20
)– user198451