import re import sys, os import datetime #=============================================== def GetInput(theDefaultValue,thePrompt): """ """ tmpInFile = theDefaultValue inFileName = raw_input(thePrompt) if inFileName == "": inFileName = tmpInFile return inFileName #=============================================== def GetFileName(theDefaultFileName,theIndex): """ """ tmpInFile = theDefaultFileName prompt = "in File"+str(theIndex)+" : ["+tmpInFile+"] " inFileName = GetInput(tmpInFile,prompt) return inFileName #=============================================== def printOneLine(theFileout,theLine,theIsNewLine): theFileout.write(theLine) if theIsNewLine: theFileout.write("\n") #=============================================== def splitSmart(string, delimiter, subDelimiter): """ splits a string by 2 delimiters. input: string - the string to split delimiter - the first delimiter to split by subDelimiter - the second delimiter to split by, may be a substr of original delimiter """ a=[] for element in string.split(delimiter): b = element.split(subDelimiter) #a += [ele for ele in b if ele != ''] a += [ele for ele in b] return a #=============================================== def GetCsvDB(theFileName): db = [] print "csv file=",theFileName lines = file(theFileName,'rb').read() lines = splitSmart(lines, '\r\n','\n') for elm in lines: res = elm.split(",") db.append(res) #db[res[0]] = res return db #=============================================== def PrintDBAsHtml(theFileName,theDB,theBorder): #print theDB fout = open(theFileName,"w+") #printOneLine(fout,'',1) #printOneLine(fout,'',1) printOneLine(fout,'[table]',1) for elm in xrange(len(theDB)): printOneLine(fout,'[tr]',0) for col1 in theDB[elm]: if elm == 0: printOneLine(fout,'[th]',0) else: printOneLine(fout,'[td]',0) printOneLine(fout,col1,0) if elm == 0: printOneLine(fout,'[/th]',0) else: printOneLine(fout,'[/td]',0) printOneLine(fout,'[/tr]',1) printOneLine(fout,'[/table]',1) #printOneLine(fout,'',1) #printOneLine(fout,'',1) fout.close() #------------------ main -------------------------------------- print "csv2html Ver 1.2" curDir = os.getcwd()+"/examples" newDir = raw_input("current dir: ["+curDir+"] ") if newDir == "": newDir = curDir inFileNameTmp = "Devices_Cfg" inFileName1 = GetFileName(str(inFileNameTmp)+".csv",1) inFileName2 = newDir + "/"+inFileName1 outfname = newDir + "/"+inFileName1 + ".txt" #dfbrdr = str(0) #brdr = GetInput(dfbrdr,"the Border width ["+dfbrdr+"] ") brdr = str(0) db1 = GetCsvDB(inFileName2) PrintDBAsHtml(outfname,db1,brdr)