readABSFile.py
69 lines
| 2.3 KiB
| text/x-python
|
PythonLexer
|
r147 | ''' | |
Created on May 2, 2013 | |||
@author: Jose Antonio Sal y Rosas Celi | |||
@contact: jose.salyrosas@jro.igp.gob.pe | |||
''' | |||
class readABSFile(object): | |||
__scriptName = "readABSFile.py" | |||
def __init__(self, filename): | |||
self.fileName = filename | |||
|
r150 | self.content = "" | |
self.exp_name = "" | |||
self.number_patterns = 0 | |||
self.patterns = {} | |||
|
r151 | def readFile(self): | |
f = open(self.fileName, 'r') | |||
|
r150 | self.content = f.readlines() | |
f.close() | |||
|
r147 | ||
|
r150 | def getMetadata(self): | |
|
r151 | self.readFile() | |
|
r150 | newLine = self.content[0].replace("'","") | |
pos = newLine.find("=") | |||
self.exp_name = newLine[pos+1:].strip() | |||
|
r147 | ||
|
r150 | pos = self.content[2].find("=") | |
self.number_patterns = int(self.content[2][pos+1:].strip()) | |||
self.patterns = self.getPatterns(self.content[3:]) | |||
|
r151 | ||
return self.exp_name, self.number_patterns, self.patterns | |||
|
r147 | ||
|
r150 | def getPatterns(self, content): | |
lsPattern = [] | |||
|
r152 | patterns = self.getValueofPattern(content) | |
for element in patterns: | |||
if element != "": | |||
strValue = element.replace("=","/") | |||
pattern = strValue.split("/") | |||
dicPattern = {"number" : pattern[0], "up" : pattern[1], "down" : pattern[2]} | |||
lsPattern.append(dicPattern) | |||
|
r150 | ||
|
r152 | return lsPattern | |
def getValueofPattern(self, content): | |||
strValue = "".join(element.replace("\n","+").strip() for element in content) | |||
strValue = strValue.replace("\r","+") | |||
strValue = strValue.replace("$","") | |||
strValue = strValue.replace("]]+++[[","]]/[[") | |||
strValue = strValue.replace("]]++[[","]]/[[") | |||
strValue = strValue.replace("]]+[[","]]/[[") | |||
strValue = strValue.replace("],++[","],[") | |||
strValue = strValue.replace("],+[","],[") | |||
strValue = strValue.replace("]]+++","]]|") | |||
strValue = strValue.replace("]]++","]]|") | |||
strValue = strValue.replace("]]+","]]|") | |||
strValue = strValue.replace(" =++[[","=[[") | |||
strValue = strValue.replace("=++[[","=[[") | |||
strValue = strValue.replace(" =+[[","=[[") | |||
strValue = strValue.replace("=+[[","=[[") | |||
strValue = strValue.replace("+","").strip() | |||
#print strValue | |||
lsPatterns = strValue.split("|") | |||
|
r150 | ||
|
r152 | return lsPatterns |