У меня есть скрипт для разбора .xml
файлов.Каждый день в моем каталоге появляются новые .xml
файлы, и я хочу анализировать только новые.Я не знаю, как я могу получить только файлы новостей из моего каталога и проанализировать их с помощью моего скрипта.
Я использую код ниже, чтобы проанализировать все мои .xml
файлы.
# coding: utf-8
from lxml import etree as ET
import pandas as pd
import numpy as np
import glob
import sys
import os
path = 'C:\Users\sky\Documents\Results'
#Read one xml file of Dedcoded directory
for filename in glob.glob(os.path.join(path, '*.xml')):
try:
tree = ET.parse(filename)
root = tree.getroot()
# Extract all data from tags
data=[]
for param in root.findall('./Book/Message/Prog//'):
name = param.find('Name')
value = param.find('Value')
if name is not None:
name =name.text
if value is not None:
value =value.text
data.append([name, value])
df_data = pd.DataFrame(data, columns=["Name", "Value"])
df_data = pd.concat([pd.Series(v.values, name=k) for k, v in df_data.groupby('Name')['Value']], axis=1)
# At the end I save my df_dat to a CSV file by this condition, if the file \
#'all_data.csv' does not exist then create this file and add the date into with headers.
if os.path.isfile('all_data.csv') is False:
df_data.to_csv('all_data.csv', mode='w', header=True, index=False)
print '\n', ' File Processed Successfully!', '\n'
# And if it exist already then just append the result without adding the headers
else:
df_data.to_csv('all_data.csv', mode='a', header=False, index=False)
print '\n', ' File Processed Successfully!', '\n'
except:
pass
Я запускаю этот код каждый день, и он занимает много времени, потому что он также анализирует старые .xml
файлы.
Спасибо за помощь!