Я не могу решить проблему в своем коде Python, и мне нужны некоторые подсказки.
Дело в том, что если я использую код без для цикла, непосредственно с
tree = etree.parse('filename.xml', parser=parser)
все работает как надо.Когда я пытаюсь присвоить file
переменную для итерации имени файла внутри каталога, код зависает, сообщая мне следующую ошибку:
Traceback (последний вызов был последним): File "/ home / eikaf / test.py ", строка 45, в ragsocemittente = root.find ('.// FatturaElettronicaHeader // CedentePrestatore // DatiAnagrafici // Anagrafica // Denominazione') AttributeError: у объекта NoneType нет атрибута find -
path = '/home/eikaf/xml'
for dirpath, dirnames, filenames in os.walk(path):
for file in filenames:
#print(file)
#print(filenames)
tree = etree.parse(file, parser=parser)
root = tree.getroot()
ragsocemittente = root.find('.//FatturaElettronicaHeader//CedentePrestatore//DatiAnagrafici//Anagrafica//Denominazione')
if ragsocemittente is None:
ragsocemittente = ''
ragsocemittentecognome = root.find('.//FatturaElettronicaHeader//CedentePrestatore//DatiAnagrafici//Anagrafica//Cognome')
ragsocemittentenome = root.find('.//FatturaElettronicaHeader//CedentePrestatore//DatiAnagrafici//Anagrafica//Nome')
#print("Ragione Sociale Emittente " + ragsocemittentecognome.text + " " + ragsocemittentenome.text)
ragsocemittentegiust = str(ragsocemittentecognome.text + " " + ragsocemittentenome.text).ljust(32)
else:
#print("Ragione Sociale Emittente: " + ragsocemittente.text)
ragsocemittentegiust = str(ragsocemittente.text).ljust(32)
print(ragsocemittente.text)