от
У меня есть XML-файл, содержащий 24000 строк данных. Каждый файл содержит данные, относящиеся к одному конкретному моменту времени, и мне нужно читать данные из тысяч файлов в цикле. Один XML-файл выглядит так:
import glob
import os
import lxml.etree as ET
path='Folder for xml

EDIT1

После того, как я получил совет по использованию Xpath и split-метода, я создал фрагмент кода, который выглядит следующим образом:

import glob
import os
import lxml.etree as ET
path='Folder for xml

Это производит вывод как

1.0,

Используя этот метод, я могу найти и получить строку номер три в зависимости от местоположения (1,0 м). Однако на данный момент я не могу разбить внутренний текст тега и не знаю, как это сделать:

Если я попытаюсь разделить вышеупомянутый вывод, как это

datat = data.split(",")
Я получаю ошибку атрибута:
AttributeError: 'lxml.etree._Element' object has no attribute 'split'
И я думаю, это означает, что в lxml нет метода split, и мне нужно найти другой способ сделать это. Если я попытаюсь разделить вышеупомянутый вывод таким образом:
datat = [i.split(",") for i in data]
print(datat[0])
Мой вывод - просто пустые скобки, означающие, что цикл for, скорее всего, ничего не делает. Печать данных дает мне эту ошибку, которая, скорее всего, доказывает, что я не сделал это правильно.
IndexError: list index out of range
Мой желаемый результат после разделения будет

'1.0','
чтобы получить желаемое выходное значение 10.0
. После сплит-метода, я думаю, можно найти значение температуры, добавив еще две строки:
temperature = float(datat[5])
print(temperature.text)
Кто-нибудь знает, что не так с моими методами расщепления? Так как я не все делаю правильно и еще не нашел ни одного полезного совета через гугл.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

1 Ответ

0 голосов
от
Спасибо за совет, связанный с Xpath и split-method. Наконец, я нашел решение, чтобы получить значение, которое я ищу:
import glob
import os
import lxml.etree as ET
path='Folder for xml

Проблема, кажется, в том, что я не создал строку. По сути, мне не хватало одной строки в моем разделе редактирования:

data_string = data.text
print(data_string)
с выходом:
1.0,
Эта команда разбивает данные:

split_data = data_string.split(',')
print(split_data)
с выходом:
['\n1.0', '

И, наконец, это дает мне результат, который я искал:

temperature = float(split_data[5])
print(temperature)
с выходом:
10.0
    
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...