Я пытаюсь проанализировать файл "XML", включенный в приведенный ниже код, но получаю ошибку для всех определенных переменных:
NameError: имя 'имя_компьютера' не определено
Вот выдержка из файла «XML» (потому что это не настоящий файл XML, я пытаюсь установить переменную в строке ниже найденной строки):
<p1:field>
<p1:name>NewComputerName</p1:name>
<p1:value>Computer01</p1:value>
</p1:field>
<p1:field>
<p1:name>NewComputerAssetTag</p1:name>
<p1:value>12345</p1:value>
</p1:field>
<p1:field>
<p1:name>AcquisitionDate</p1:name>
<p1:value>4/20/69</p1:value>
</p1:field>
и вот мой код:
import csv
import os
with open('csvtest.csv', 'w', newline='') as outfile:
writer = csv.writer(outfile)
writer.writerow(('Computer Name', 'Acquisition Date', 'Asset Tag'))
for filename in os.listdir('\\\\windb\\f$\\Technology\\V1\\0'):
if filename.endswith(".xml"):
with open(os.path.join('\\\\windb\\f$\\Technology\\V1\\0',filename), "r") as input:
for line in input:
if line.startswith(' <p1:name>NewComputerName</p1:name>'):
computer_name=next(input, '').strip()
computer_name=computer_name.split("<p1:value>")[1].split("</")[0]
elif line.startswith(' <p1:name>AcquisitionDate'):
acqDate=next(input, '').strip()
acqDate=acqDate.split("<p1:value>")[1].split("</")[0]
elif line.startswith(' <p1:name>NewComputerAssetTag'):
assTag=next(input, '').strip()
assTag=assTag.split("<p1:value>")[1].split("</")[0]
myData = [computer_name,acqDate,assTag]
writer.writerow(myData)
Я ожидаю, что это запишет 3 переменные в файл CSV, добавив строку для каждого файла XML в каталоге.
Вывод: NameError: имя 'имя_компьютера' не определено