import os import glob import pandas as pd import xml.etree.ElementTree as ET def xml_to_csv(path): xml_list = [] print(xml_list) for xml_file in glob.glob(path + '/*.xml'): tree = ET.parse(xml_file) root = tree.getroot() for member in root.findall('object'): value = (root.find('filename').text, int(root.find('size')[0].text), int(root.find('size')[1].text), member[0].text, int(member[4][0].text), int(member[4][1].text), int(member[4][2].text), int(member[4][3].text) ) xml_list.append(value) column_name = ['filename', 'width', 'height', 'class', 'xmin', 'ymin', 'xmax', 'ymax'] xml_df = pd.DataFrame(xml_list, columns=column_name) return xml_df def main(): for directory in ['allpic']: print(directory) image_path = os.path.join(os.getcwd(), 'tfcoffebean/{}'.format(directory)) xml_df = xml_to_csv(image_path) print(image_path) xml_df.to_csv('C:/Users/User/Desktop/tfcoffebean/xml_to_csv/{}_labels.csv'.format(directory), index=None) print('Successfully converted xml to csv.') main()