In the following example, the Python code will create a dictionary with the headers (fields on the first line) from the CSV input file and recreate the same structure in the XML output file.

Input file:

"Username","Identifier","First Name","Last Name"
"booker12","9012","Rachel","Booker"
"grey07","2070","Laura","Grey"
"johnson81","4081","Craig","Johnson"
"jenkins46","9346","Mary","Jenkins"
"smith79","5079","Jamie","Smith"

Converter script:

#!/bin/python
# Converter: CSV to XML

import csv
import xml.etree.ElementTree as xml

input = 'input.csv'
output = 'output.xml'

# opening the CSV input
file = open(input)
reader = csv.reader(file, delimiter=',', quotechar='"')
headers = next(reader)

# creating the dictionary
indexes = {}
for header in headers:
    indexes[header] = headers.index(header)

# creating the XML structure
root = xml.Element("Collection")

id = 0
for item in reader:
    id = id + 1

    # creating each entry (element)
    entry = xml.Element("Entry")
    
    # setting an attribute to the entry
    entry.set('id',str(id))
    root.append(entry)

    # adding each property to the entry
    for variable in indexes:
        entry_property = xml.SubElement(entry, variable)
        entry_property.text = item[indexes[variable]]

# writing the XML structure to a file
tree = xml.ElementTree(root)
with open(output, "wb") as output_file:
    tree.write(output_file)

exit()

This script can be executed giving it as an argument to the Python interpreter:

python converter.py

Or by marking it as executable and executing it directly:

chmod +x converter.py
./converter.py

The output file will look like this:

<Collection>
  <Entry id="1">
    <Username>booker12</Username>
    <First Name>Rachel</First Name>
    <Identifier>9012</Identifier>
    <Last Name>Booker</Last Name>
  </Entry>
  <Entry id="2">
    <Username>grey07</Username>
    <First Name>Laura</First Name>
    <Identifier>2070</Identifier>
    <Last Name>Grey</Last Name>
  </Entry>
  <Entry id="3">
    <Username>johnson81</Username>
    <First Name>Craig</First Name>
    <Identifier>4081</Identifier>
    <Last Name>Johnson</Last Name>
  </Entry>
  <Entry id="4">
    <Username>jenkins46</Username>
    <First Name>Mary</First Name>
    <Identifier>9346</Identifier>
    <Last Name>Jenkins</Last Name>
  </Entry>
  <Entry id="5">
    <Username>smith79</Username>
    <First Name>Jamie</First Name>
    <Identifier>5079</Identifier>
    <Last Name>Smith</Last Name>
  </Entry>
</Collection>