Найти - Пользователи
Полная версия: ПОМОГИТЕ - Скрипт для поиска и парсинга *.xml файлов которые находятся в папках и под-папках
Начало » Python для новичков » ПОМОГИТЕ - Скрипт для поиска и парсинга *.xml файлов которые находятся в папках и под-папках
1 2
philips2009
Доброго времени суток!
Подскажите пожалуйста начинающему программисту какими библиотеками воспользоватся чтобы скрипт делал следующее:
1. искал по всем папкам *.xml файлы
2. ставил в очередь найденный файл (или его путь)
3. парсил данные файлы
4. загружал спарсенные данные в *.txt-файл и в базу данных MySql одновременно

ЗАРАНЕЕ БЛАГОДАРЮ!!!
vic57
1,2- os.listdir(you_path)
3 - lxml ИМХО
4.  https://stackoverflow.com/questions/4960048/python-3-and-mysql
philips2009
vic57
1,2- os.listdir(you_path)3
А как сделать так чтобы скрипт искал пока не откроет все под-папки
vic57
все гуглится за минуту
http://pythoner.name/walk
py.user.next
os.walk() + xml.etree.ElementTree()

Модуль lxml лучше, чем xml, но lxml надо устанавливать, тогда как xml есть изначально.
philips2009
py.user.next
os.walk() + xml.etree.ElementTree()Модуль lxml лучше, чем xml, но lxml надо устанавливать, тогда как xml есть изначально.
Не получается спарсить xml, объясните пожалуйста
  <interception-info interception_criteria="8" interception_filter="XXX" network_id="AAA" switch_start_time="2017-09-20T08:00:20.300" switch_end_time="2017-09-20T08:00:20.300" call_type="1" imsi="XXX" imei="XXX" msisdn="XXX" center="XXX" network_element_id="XXX" />
  <switch-event event_id="199294759" event_time="2017-09-20T05:00:22.886" event_type="2" switch_event_sub_type="18" switch_time="2017-09-20T08:00:20.300" to_country="XXX" to_network="02" to_lac="2101" to_cellid="29754" to_cell="111-02-2101-555" to_network_element_id="XXX" />
  <cell-coordinates coordinates_event_id="XXX" cell_id="111-02-2101-555" cell_name="TTT" event_time="2017-09-20T05:00:22.886" point_type="1" cell_coordinate_x="48.83586" cell_coordinate_y="76.97907" cell_beam="150" cell_format="0" cell_address="GGG" cell_descriptor="AAA ,ML_2101 ,ZZZ" coordinate_participant="1" />
py.user.next
  
>>> import xml.etree.ElementTree as etree
>>> 
>>> text = '<interception-info interception_criteria="8" interception_filter="XXX" network_id="AAA" switch_start_time="2017-09-20T08:00:20.300" switch_end_time="2017-09-20T08:00:20.300" call_type="1" imsi="XXX" imei="XXX" msisdn="XXX" center="XXX" network_element_id="XXX" />'
>>> 
>>> doc = etree.fromstring(text)
>>> doc
<Element 'interception-info' at 0x7effacc52b88>
>>> 
>>> lst = list(doc.attrib.items())
>>> lst
[('interception_criteria', '8'), ('interception_filter', 'XXX'), ('network_id', 'AAA'), ('switch_start_time', '2017-09-20T08:00:20.300'), ('switch_end_time', '2017-09-20T08:00:20.300'), ('call_type', '1'), ('imsi', 'XXX'), ('imei', 'XXX'), ('msisdn', 'XXX'), ('center', 'XXX'), ('network_element_id', 'XXX')]
>>> 
philips2009
py.user.next
File “parser.py”, line 4, in <module>
doc = etree.fromstring(text)
File “/usr/lib/python3.5/xml/etree/ElementTree.py”, line 1344, in XML
parser.feed(text)
TypeError: a bytes-like object is required, not ‘_io.TextIOWrapper’
py.user.next
Что-то не то делаешь. Прикрепи parser.py к сообщению.
philips2009
py.user.next
Что-то не то делаешь. Прикрепи parser.py к сообщению.
 import xml.etree.ElementTree as etree
text = open('123.xml', encoding = 'utf8')
doc = etree.fromstring(text)
lst = list(doc.attrib.items())
print(lst)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB