Newbie Question: CSV to XML

ProvoWallis gshepherd281281 at yahoo.com
Fri Jan 6 15:00:49 EST 2006


Hi,

I'm learning more and more about Python all the time but I'm still a
real newbie. I wrote this little script to convert CSV to XML and I was
hoping to get some feedback on it if anyone was willing to comment.

It works but I was wondering if there was anything I could do better.
E.g., incorporate minidom somehow? But I'm totally in the dark as how I
would do this.

Thanks,

Greg


###

#csv to XML conversion utility

import os, re, csv
root = raw_input("Enter the path where the program should run: ")
fname = raw_input("Enter name of the uncoverted file: ")
print

given,ext = os.path.splitext(fname)
root_name = os.path.join(root,fname)
n = given + '.xml'
outputName = os.path.join(root,n)

reader = csv.reader(open(root_name, 'r'), delimiter=',')

output = open(outputName, 'w')

output.write('<?xml version="1.0"
encoding="utf-8"?>\n<em:table>\n<core:title/>')

output.write('\n<core:legend> %s %s  </core:legend>\n<table
frame="none" colsep="0" rowsep="0">\n<tgroup cols="11" colsep="0"
rowsep="0">\n<tbody valign="bottom">' % ('TAS input file for ', given))

for row in reader:
     for i in range(0, len(row)):

          if i == 0:
               output.write('\n<row>\n<entry
colname="col%s">%s</entry>' % (i, row[i]))
          if i > 0 and i < len(row) - 1:
               output.write('\n<entry colname="col%s">%s</entry>' % (i,
row[i]))
          if i == len(row) - 1:
               output.write('\n<entry
colname="col%s">%s</entry>\n</row>' % (i, row[i]))

output.write('\n</tbody>\n</tgroup>\n</table>\n</em:table>')

output.close()




More information about the Python-list mailing list