예제 #1
0
파일: pycsv.py 프로젝트: AnilSingh79/pydan
 def __init__(self,fName,headers=[],separator = ',', firstLineIsHeader=True):
     self.pFirstLineIsHeader = firstLineIsHeader
     self.pSeparator = separator
     self.pFname = fName
     if len(headers) !=0 and firstLineIsHeader==True:
         raise RuntimeError('Ambiguous Header Specifications')
     if os.path.exists(self.pFname):
         self.pFile = open(self.pFname,'r')
         firstLine   = self.pFile.readline().split(self.pSeparator)
         ##print firstLine
         if len(headers) == 0 and firstLineIsHeader==False:
             numCol = len(firstLine)
             for n in range (1,numCol):
                 self.pHeader.append(str(n))
         elif len(headers) == 0 and firstLineIsHeader==True:
             self.pHeader = firstLine
         elif len(headers) != 0 and firstLineIsHeader==False:
             #if len(firstLine) == len(headers):
             self.pHeader = headers
             #else:
             #    raise RuntimeError("Not implemented yet")
         self.pHeader = map (str.strip, self.pHeader)
         self.pHeader = map (clean_string,self.pHeader)
         ##The clean_text return two values: Check how it works here.
         ## Not easy to use map so let us replace things by list comprehension 
         ##self.pHeader = map (clean_text.,self.pHeader)
         ##@ANIL I don't want it this ugly
         tempHeader = []
         for cname in self.pHeader:
             a, h = clean_text(cname,self.pSeparator)
             a = a.replace('"','')
             tempHeader.append(a)
         self.pHeader = tempHeader
     elif IOError:
         print ("Unable to find file: "+str(fName))
예제 #2
0
파일: pycsv.py 프로젝트: AnilSingh79/pydan
 def reader(self, numLines=-9999):
     rows = []
     nLines = 0
     for row in self.pFile:
         r,rowList = clean_text(row, self.pSeparator)
         rows.append(rowList)
         nLines = nLines+1
         if(numLines != -9999 and nLines>=numLines):
             break
     self.pFile.seek(0,0)
     if (self.pFirstLineIsHeader == True):
         self.pFile.readline()
     return rows