469,282 Members | 1,953 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,282 developers. It's quick & easy.

Html Generator

I want to generate a script that produces html code. I have tried out must parts of the code from the shell .Somehow I always get errors if I check the modul.
please help me find the syntax errors...
Python 2.5 (r25:51908, Sep 19 2006, 09:52:17) [MSC v.1310 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.

************************************************** **************
Personal firewall software may warn about the connection IDLE
makes to its subprocess using this computer's internal loopback
interface. This connection is not visible on any external
interface and no data is sent to or received from the Internet.
************************************************** **************

IDLE 1.2
>>>



##generates html table code from CSV Files
##it must be copied to right section in html file for now
----------------------------------------------------------
---------------------------------------------------------------------
##this is an example of the table
##...
##<td align=\"right\" class=\"tableHighlightVertical\">smile</td>
##</tr>
##________________________________________________ ___________
##________________________________________________ __________
##this is an exaple row of the csv
##1;Patrick Pleifer;16;6;13;0;20;0;55;0;55
##________________________________________________ ____________
##________________________________________________ ______________
##
## First part read out csv, fill array
##_________________________________________
## starting coding..definition of variables
import logging

##logging.basicConfig(level=logging.DEBUG, doesn't work somehow
## format='%(asctime)s %(levelname)s %(message)s',
## filename='/temp/myapp.log',
## filemode='w')

demitterCSV = ';'
CSVFile= 'meinfile.csv'
Outputfile ='outputfile.html'

logging.debug('csv demitter = ' + demitterCSV)
logging.debug('csv file = ' + CSVFile)
logging.debug('csv file = ' + Outputfile)

# used css styles in col order
ColStyleList = ['tableHighlightVertical','tableStandardCenterMinWn ame','tableStandardCenterMinW','tableStandardCente rMinW','tableStandardCenterMinW','tableStandardCen terMinW','tableStandardCenterMinW','tableStandardC enterMinW',
'tableStandardCenterMinW','tableStandardCenterMinW ','tableHighlightVertical']
logging.debug('css array generated = ' + ColStyleList)


numCol = len(ColStyleList)

import csv


#read data into a 2d array
array = []
#reader = csv.reader(open(CSVFile, "rb"), demitterCSV) doesn't work with variables(why??)
reader = csv.reader(open("meinfile.csv", "rb"), delimiter=";")
logging.debug('csv afile opened = ')
for row in reader:
array.append(row)

reader.close()
numRows= len(array)
if numRows ==len(array[1]:
logging.debugwarning("csv format does not match table col format")
else:
logging.debug('auslesen fertig ,array erzeugt; Anzahl Reihen = '+ numRows ' Spalten = '+ numCol)

#_______________________________________
#_____________________________________________
# First part is over :read out is complete
#Second part: generating html code
#___________________________________________-
# temporarly html code is safed in array
#

mycode =[]
mycode.append("""<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">""")
mycode.append('<html>')
mycode.append('<head>')
mycode.append("""<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">""")
mycode.append("""<title>TITLE</title>""")
mycode.append("""<link href="pokerDetail.css" rel="stylesheet" type="text/css" />""")
mycode.append("""<style type="text/css">""")

rowdefstart = u'<tr height=\\\"19\\\">'
rowdefend= r"</tr>"
colldefstart = '<td class=\\'
collstyladd= '"\>'
colldefend = r"</td>"

logging.debug("Header in temp array")
logging.debug(mycode)
numRows= len(array)

#<td class=\"tableHighlightVertical\">smile</td>


row=0
col=0
tmp= "tmp"
while row < numRows:
logging.debug(( "counter " + str(row)+" < " + str(numRows))
#mycode.append(rowdefstart)
while col <numCol:
logging.debug("outer " + str(row)+ " counter " + str(col)+" < "+ str(numCol))
tmp=(colldefstart + ColStyleList[col] + collstyladd+str(array[row][col])+ colldefend)
mycode.append(s)
col = col + 1
col = 0
row = row + 1
logging.debug()


# tmp string is needed, if you put sequence escape string direcly in array
# it screws it, see below
#<td class=\\tableHighlightVertical"\\>1.</td>' instead of
#<td class=\"tableHighlightVertical\">smile</td>

writer = csv.writer(open("some.csv", "wb"))
writer.writerows(mycode)
logging.debug("finished")


Thanks for your help. I am really curious as I normally cope with java.
At least I was able to solve some (previous) errors like escape sequence myself...but now I am kind of stuck
Jul 28 '08 #1
4 1837
Hey could u please put the code in the
Expand|Select|Wrap|Line Numbers
  1. <code block>
so that the indents could be visible
Jul 29 '08 #2
Sorry
was offline some time here a new version
please help me find the syntax errors...
<code
class HtmlGenerator:
##generates html table code from CSV Files
#it must be copied to right section in html file for now


def __init__(self, csvname = 'input.csv'):
self.CSVFile = csvname
self.Outputfile = "outputname"
self.demitterCSV = "demitter"
self.numRows =0
self.numCol=0
self.array = []
self.ColStyleList =
iteration =['tableHighlightVertical','tableStandardCenterMinWn ame','tableStandardCenterMinW','tableStandardCente rMinW','tableStandardCenterMinW','tableStandardCen terMinW','tableStandardCenterMinW','tableStandardC enterMinW',
'tableStandardCenterMinW','tableStandardCenterMinW ','tableHighlightVertical']

#constants
TABLE_TAG_END= "<//TABLE>"
TABLE_TAG_OPEN= "<TABLE "
ROW_TAG_START = u'<tr height=\\\"19\\\">'
ROW_TAG_END= r"</tr>"
CELL_TAG_OPEN = "<td "
CLASS_ASSIGN_TAG= " class=\\"
CLOSE_TAG= '"\>'
CELL_TAG_CLOSE = r"</td>"



##
## def __init__(self, csvname = 'input.csv' , outputname ='output.html', demitter =";", colstyle = []):
## import logging
## import csv
## self.CSVFile = csvname
## self.Outputfile = outputname
## self.demitterCSV = demitter
## self.numRows =0
## self.numCol=0
## self.array = []
## self.ColStyleList = colstyle
## #constants
## TABLE_TAG_END= "<//TABLE>"
## TABLE_TAG_OPEN= "<TABLE "
## ROW_TAG_START = u'<tr height=\\\"19\\\">'
## ROW_TAG_END= r"</tr>"
## CELL_TAG_OPEN = "<td "
## CLASS_ASSIGN_TAG= " class=\\"
## CLOSE_TAG= '"\>'
## CELL_TAG_CLOSE = r"</td>"

#_________________________________________________ ______________________


# block of set variable methods
setColumStyles(iteration):
ColStyleList =iteration

setCsvFilename(name):
CSVFile =name

setOutputFilename(name):
Outputfile =name

setDemitter(dem):
demitterCSV=name

self. = outputname

#_________________________________________________ _____________________________

# block of get mothods

getColumStyles():
return ColStyleList

getCsvFilename():
return CSVFile

getOutputFilename():
return Outputfile

getDemitter():
return demitterCSV

#_________________________________________________ _____________________________
# printing and logging methods for iterations
printIteration(iteration):
for item in iteration:
print(str(item))
return true


logIteration(iteration):
for item in iteration:
lgging.debug(str(item))
return true

#_________________________________________________ _____________________
# use this method to replace consol logging with filelogging
setFileLogging(logname = "errorlog.log"):
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s %(levelname)s %(message)s',
filename="/" + logname,
filemode='w')
logging.debug("Filelog activ "+ "/" + logname)
return true
# logs and prints contentr of important variables
printSettings():
print('csv demitter = ' + demitterCSV)
print('csv file = ' + CSVFile)
print'csv file = ' + Outputfile)
print('csv file = ' + (str)ColStyleList)
logging.info('csv demitter = ' + demitterCSV)
logging.info('csv file = ' + CSVFile)
logging.info('csv file = ' + Outputfile)
logging.info('csv cssSTylelist = /t' + (str)ColStyleList )


#reads in csv data, if relevant variables were not init properly use parameters
getArryCSV(name=CSVFile, dem=demitterCSV):
reader = csv.reader(open("name", "rb"), delimiter=dem)
logging.info('csv afile opened = ')
array = array []
for row in reader:
array.append(row)
numRows= len(array)
numCol = len(array[0])
logging.info('csv read out complete ' )
logging.info('Anzahl Reihen = '+ numRows ' Spalten = '+ numCol)
reader.close()
return true


isDimOk():
len(ColStyleList)
if numCol ==len(ColStyleList)
logger.info("dim css style list does not match css file")
logger.info("css disabled");
return false
else :
logging.info("csv format matches table col format")
return true


# produces html header code, which will stored in array, actually html lines are appended! returns true if succesfull
produceHtmlHmlHeader(iteration):
iteration.append("""<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">""")
iteration.append('<html>')
iteration.append('<head>')
iteration.append("""<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">""")
iteration.append("""<title>TITLE</title>""")
iteration.append("""<link href="pokerDetail.css" rel="stylesheet" type="text/css" />""")
iteration.append("""<style type="text/css">""")
iteration.debug("Header in temp array")
return true





# appends produced table code to array, return true if no exceptions
produceHtmlTableCode(iteration):
# example table cell<td class=\"tableHighlightVertical\">smile</td>
iteration.append("<BODY>")
if (!isDimOk())
ColStyleList = []
i=0
while i <numCol:
ColStyleList.append(" ")
i= i+1
row=0
col=0
tmp= "tmp"
iteration.append(TABLE_TAG_OPEN)
while row < numRows:
tmp= ROW_TAG_START
logging.debug(( "counter " + str(row)+" < " + str(numRows))
iteration.append(tmp)
while col <numCol:
logging.debug("outer " + str(row)+ " counter " + str(col)+" < "+ str(numCol))
tmp=(CELL_TAG_OPEN + CLASS_ASSIGN_TAG + ColStyleList[col] + CLOSE_TAG+str(array[row][col])+ CELL_TAG_CLOSE)
iteration.append(tmp)
col = col + 1
col = 0
tmp = ROW_TAG_END
iteration.append(tmp)
row = row + 1
tmp = TABLE_TAG_CLOSE
iteration.append(tmp)
iteration.append("<\BODY>")
# warning no explicit typecasting tmp string is needed, otherwise see below
#<td class=\\tableHighlightVertical"\\>1.</td>'
#<td class=\"tableHighlightVertical\">smile</td>
return true

writeCodetoFile(name=output.html,iteration):
writer = csv.writer(open("some.csv", "wb"))
writer.writerows(iteration)
logging.info("wrote file :" + name )
logiteration (iteration)


test:
#def _ _init_ _(self, csvname = 'input.csv' , outputname ='output.html', demitter =";", colstyle = []):

iteration =['tableHighlightVertical','tableStandardCenterMinWn ame','tableStandardCenterMinW','tableStandardCente rMinW','tableStandardCenterMinW','tableStandardCen terMinW','tableStandardCenterMinW','tableStandardC enterMinW',
'tableStandardCenterMinW','tableStandardCenterMinW ','tableHighlightVertical']

checklist []
AnotherInstance = HtmlGenerator.HtmlGenerator("meinfile.csv","meinht ml.html",";",iteration)

checklist []
checklist.append(AnotherInstance.setFileLogging())
checklist.append(AnotherInstance.setFileLogging())
mycode []
checklist.append(AnotherInstance.getArryCSV())
checklist.append(AnotherInstance.produceHtmlHmlHea der(mycode))
checklist.append(AnotherInstance.produceHtmlTableC ode(mycode))
checklist.append(AnotherInstance.writeCodetoFile(m ycode))

block>


[b]Thanks for your help. I am really curious as I normally cope with java.
At least I was able to solve some (previous) errors like escape sequence myself...but now I am kind of stuck
Jul 30 '08 #3
Expand|Select|Wrap|Line Numbers
  1. class HtmlGenerator:
  2.     ##generates html table code from CSV Files
  3.     #it must be copied to right section in html file for now
  4.  
  5.       #
  6.       #def __init__(self, csvname = "input.csv"):
  7.       #      self.CSVFile = "csvname"
  8.       #      self.Outputfile = "outputname"
  9.       #      self.demitterCSV = "demitter"
  10.       #      self.numRows =0
  11.       #      self.numCol=0
  12.       #      self.array = []
  13.       #      self.ColStyleList = ['tableHighlightVertical','tableStandardCenterMinWname','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW',
  14.       #  'tableStandardCenterMinW','tableStandardCenterMinW','tableHighlightVertical']
  15.       #
  16.       #      #constants
  17.       #      TABLE_TAG_END= "<//TABLE>"
  18.       #      TABLE_TAG_OPEN=  "<TABLE "
  19.       #      ROW_TAG_START = u'<tr height=\\\"19\\\">'
  20.       #      ROW_TAG_END= r"</tr>"
  21.       #      CELL_TAG_OPEN = "<td "
  22.       #      CLASS_ASSIGN_TAG= " class=\\"
  23.       #      CLOSE_TAG= '"\>'
  24.       #      CELL_TAG_CLOSE = r"</td>"
  25.  
  26.  
  27.  
  28.  
  29.     def __init__(self, csvname = 'input.csv' , outputname ='output.html', demitter =";", colstyle = []):
  30.             import logging
  31.             import csv 
  32.             self.CSVFile = csvname
  33.             self.Outputfile = outputname
  34.             self.demitterCSV = demitter
  35.             self.numRows =0
  36.             self.numCol=0
  37.             self.array = []
  38.             self.ColStyleList = colstyle
  39.             #constants
  40.             TAG_TABLE_C= "<//TABLE>"
  41.             TAG_TABLE_O=  "<TABLE "
  42.             TAG_ROW_O = u'<tr height=\\\"19\\\">'
  43.             TAG_ROW_C= r"</tr>"
  44.             TAG_CELL_O = "<td "
  45.             TAG_CLASS_O= " class=\\"
  46.             TAG_CLASS_C= '"\>'
  47.             TAG_CELL_C = r"</td>"
  48.             TAG_BODY_O = "<BODY>"
  49.             TAG_BODY_C = "<\BODY>"
  50.             TAG_HTML_O = '<html>'
  51.             TAG_HTML_C = r"</html>"
  52.             TAG_HEAD_O = '<head>'
  53.             TAG_HEAD_C = r"</head>"
  54.             TAG_META_O = "<meta "
  55.             TAG_META_C = " />"
  56.             TAG_TITLE_O = "<title>"
  57.             TAG_TITLE_C = r"</title>"
  58.             TAG_STYLE_O = "<style "
  59.             TAG_STYLE_C = r"</style>"
  60.             tmp= "tmp" 
  61.         #_______________________________________________________________________
  62.  
  63.  
  64.         # block of set variable methods
  65.     def setColumStyles(iteration):
  66.             self.ColStyleList =iteration
  67.  
  68.     def setCsvFilename(name):
  69.             CSVFile =name
  70.  
  71.     def setOutputFilename(name):
  72.             Outputfile =name
  73.  
  74.     def setDemitter(dem):
  75.             demitterCSV=name
  76.  
  77.  
  78.  
  79.         #______________________________________________________________________________
  80.  
  81.         # block of get mothods
  82.  
  83.     def getColumStyles():
  84.             return ColStyleList
  85.  
  86.     def getCsvFilename():
  87.             return str(CSVFile)
  88.  
  89.     def getOutputFilename():
  90.             return str(Outputfile)
  91.  
  92.     def getDemitter():
  93.             return str(demitterCSV)
  94.  
  95.     def getTAG_TABLE_O():
  96.             return str(TAG_TABLE_O)
  97.  
  98.     def getTAG_TABLE_C():
  99.             return str(TAG_TABLE_C)
  100.  
  101.     def getTAG_ROW_O():
  102.             return str(TAG_ROW_O)
  103.  
  104.     def getTAG_ROW_C():
  105.             return str(TAG_ROW_C)
  106.  
  107.     def getTAG_CELL_O():
  108.             return str(TAG_CELL_O)
  109.  
  110.     def getTAG_CELL_C():
  111.             return str(TAG_CELL_C)
  112.  
  113.     def getTAG_CLASS_O():
  114.             return str(TAG_CLASS_O)
  115.  
  116.     def getTAG_CLASS_C():
  117.             return str(TAG_CLASS_C)
  118.  
  119.     def getTAG_BODY_O():
  120.             return str(TAG_BODY_O)
  121.  
  122.     def getTAG_BODY_C():
  123.             return str(TAG_BODY_C)
  124.  
  125.     def getTAG_HTML_C():
  126.             return str(TAG_HTML_C)
  127.  
  128.     def getTAG_HTML_O():
  129.             return str(TAG_HTML_O)
  130.  
  131.     def getTAG_HEAD_C():
  132.             return str(TAG_HEAD_C)
  133.  
  134.     def getTAG_HEAD_O():
  135.             return str(TAG_HEAD_O)    
  136.  
  137.     def getTAG_META_C():
  138.             return str(TAG_META_C)
  139.  
  140.     def getTAG_META_O():
  141.             return str(TAG_META_O)             
  142.  
  143.     def getTAG_TITLE_C():
  144.             return str(TAG_TITLE_O)
  145.  
  146.     def getTAG_TITLE_O():
  147.             return str(TAG_TITLE_C)
  148.  
  149.     def getTAG_STYLE_C():
  150.             return str(TAG_STYLE_O)
  151.  
  152.     def getTAG_STYLE_O():
  153.             return str(TAG_STYLE_O) 
  154.  
  155.  
  156.  
  157.      #______________________________________________________________________________
  158.     # printing and logging methods for iterations
  159.     def printIteration(iteration):
  160.          for item in iteration:
  161.             print(str(item))
  162.          return true
  163.  
  164.  
  165.     def logIteration(iteration):
  166.          for item in iteration:
  167.             lgging.debug(str(item))
  168.          return true
  169.  
  170.     #______________________________________________________________________
  171.     # use this method to replace consol logging with filelogging
  172.     def setFileLogging(logname = "errorlog.log"):
  173.         logging.basicConfig(level=logging.DEBUG,                      
  174.                    format='%(asctime)s %(levelname)s %(message)s',
  175.                    filename="/" + logname,
  176.                    filemode='w')
  177.         logging.debug("Filelog activ "+ "/" + logname)
  178.         return true
  179.     # logs and prints contentr of important variables
  180.     def printSettings():
  181.         print('csv demitter = ' + str(getDemitter()))
  182.         print('csv file = ' + str(getCsvFilename()))
  183.         print('outputfile = ' + str(getOutputFilename()))
  184.         print('csv Col Names = ' + str(getColumStyles))                       
  185.         logging.info('csv demitter = ' + str(getDemitter()))
  186.         logging.info('csv file = ' + str(getCsvFilename()))
  187.         logging.info('outputfile = ' + str(getOutputFilename()))
  188.         logging.info('csv Col Names = ' + str(getColumStyles))                       
  189.  
  190.  
  191.     #reads in csv data, if relevant variables were not init properly use parameters
  192.     def getArryCSV(name=CSVFile, dem=demitterCSV):
  193.         reader = csv.reader(open("name", "rb"), delimiter=dem)
  194.         logging.info('csv afile opened = ')
  195.         array = []
  196.         for row in reader:
  197.             array.append(row)
  198.         numRows= len(array)
  199.         numCol = len(array[0])
  200.         logging.info('csv read out complete ' )
  201.         logging.info("Anzahl Reihen = "+ str(numRows) + " Spalten = " + str(numCol))
  202.         reader.close()
  203.         return true
  204.  
  205.  
  206.     def isDimOk():
  207.       len(ColStyleList)
  208.       if (numCol ==len(ColStyleList)):
  209.             logger.info("dim css style list does not match css file")
  210.             logger.info("css disabled");
  211.             return false
  212.       else :
  213.             logging.info("csv format matches table col format")
  214.             return true
  215.  
  216.  
  217.     # produces html header code, which will stored in array, actually html lines are appended! returns true if succesfull
  218.     def produceHtmlHmlHeader(self,iteration):
  219.         iteration.append("""<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">""")
  220.         iteration.append(self.)
  221.         iteration.append('<head>')
  222.         iteration.append("""<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">""")
  223.         iteration.append("""<title>TITLE</title>""")
  224.         iteration.append("""<link href="pokerDetail.css" rel="stylesheet" type="text/css" />""")
  225.         iteration.append("""<style type="text/css">""")
  226.         iteration.debug("Header in temp array")
  227.         return true
  228.  
  229.  
  230.  
  231.  
  232.  
  233.      # appends produced table code to array, return true if no exceptions
  234.     def produceHtmlTableCode(self,iteration):
  235.          # example table cell<td class=\"tableHighlightVertical\">smile</td> 
  236.         iteration.append("<BODY>")
  237.         ok = isDimOk()
  238.         if(ok == true):
  239.             ColStyleList = []
  240.             i=0
  241.             while i <numCol:
  242.                 ColStyleList.append(" ")
  243.                 i= i+1
  244.         row=0
  245.         col=0
  246.  
  247.         iteration.append(self.getTAG_TABLE_O)
  248.         while row < numRows:
  249.             logging.debug("counter " + str(row)+" < " + str(numRows))
  250.             iteration.append(self.getTAG_ROW_O)
  251.             while col <numCol:
  252.                 logging.debug("outer " + str(row)+ " counter " + str(col)+" < "+ str(numCol))  
  253.                 tmp=(self.getTAG_CELL_O + self.getTAG_CLASS_C + ColStyleList[col] + self.getTAG_CLASS_C+str(array[row][col])+ self.getTAG_CELL_C)
  254.                 iteration.append(tmp)
  255.                 col = col + 1
  256.             col = 0
  257.             tmp = self.getTAG_ROW_C
  258.             iteration.append(tmp)                     
  259.             row = row + 1
  260.         tmp = str(TABLE_TAG_CLOSE)
  261.         iteration.append(tmp)
  262.         iteration.append("<\BODY>")
  263.         # warning no explicit typecasting tmp string is needed, otherwise see below
  264.         #<td class=\\tableHighlightVertical"\\>1.</td>'
  265.         #<td class=\"tableHighlightVertical\">smile</td>
  266.         return  true   
  267.  
  268.     def writeCodetoFile(self,iteration,name = "output.html" ):
  269.         writer = csv.writer(open("some.csv", "wb"))
  270.         writer.writerows(iteration)
  271.         logging.info("wrote file :" + name )
  272.         logiteration (iteration)
  273.  
  274. class Test:
  275.  
  276.     def test():
  277.             #def _ _init_ _(self, csvname = 'input.csv' , outputname ='output.html', demitter =";", colstyle = []):
  278.  
  279.         iteration =['tableHighlightVertical','tableStandardCenterMinWname','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW','tableStandardCenterMinW',
  280.         'tableStandardCenterMinW','tableStandardCenterMinW','tableHighlightVertical']
  281.  
  282.         checklist = []
  283.         AnotherInstance = HtmlGenerator.HtmlGenerator("meinfile.csv","meinhtml.html",";",iteration)
  284.  
  285.         checklist.append(AnotherInstance.setFileLogging())
  286.         checklist.append(AnotherInstance.setFileLogging())
  287.         mycode = []
  288.         checklist.append(AnotherInstance.getArryCSV())                       
  289.         checklist.append(AnotherInstance.produceHtmlHmlHeader(mycode))                       
  290.         checklist.append(AnotherInstance.produceHtmlTableCode(mycode))                     
  291.         checklist.append(AnotherInstance.writeCodetoFile(mycode))
  292.  
  293.  
Jul 31 '08 #4
Hey I got a couple of errors on my dry run

1. def getArryCSV(name=CSVFile, dem=demitterCSV)
either define the values of CSVFile and demitterCSV somewhere
or if they are the values themselves then
u can do it this way
Expand|Select|Wrap|Line Numbers
  1. def getArryCSV(name="CSVFile", dem="demitterCSV")
2. complete this "iteration.append(self.)" in the "produceHtmlHmlHeader(self,iteration)" method
Aug 1 '08 #5

Post your reply

Sign in to post your reply or Sign up for a free account.

By using this site, you agree to our Privacy Policy and Terms of Use.