def __init__(self, _ini, _path, _name=""): self.ini = str(_ini) self.name= str(_name) self.path = str(_path) self.rootAnalisator = rootA.rootAnaliser(self.path+"/cps/") f=open(self.ini,"r") self.content=f.read() f.close() if self.name=="": self.name = self.getStationName()+".ini"
def __init__(self,resultFileName, path, _isEmptyGroupsRemove=True): print "Начало создания таблицы ТУ" self.resultFileName = resultFileName self.path = path ra=rootA.rootAnaliser(self.path) # сохранить имеющийся файл resultFileName с расширением old try: f = open(resultFileName,'r') oldContent = f.read() f.close() f1 = open(resultFileName+".old",'w') f1.write(oldContent) f1.close() except: donothing=0 #просмотреть данную директорию на наличие файлов impulses.<....>.xml for file in os.listdir(self.path): #Требуется ли рассматривать этот файл (в качестве файла с ТУ) isRequired=True #проверяем на несоответствие образцу for pattern in self.notUsedPattern: if re.search(pattern,file): isRequired=False break # проверяем на несовпадение имени с запрещёнными файлами for one in self.notUsed: if file==one: isRequired=False break if isRequired and re.search(".xml$",file) : print "Найден файл "+str(file) try: #if True: impDoc = FromXmlFile(self.path+"/"+file) root = impDoc.documentElement objs = root.getElementsByTagName("obj") for obj in objs: # имя рассматриваемого объекта objName = obj.getAttribute("name") objTitle = obj.getAttribute("title") objClass = obj.getAttribute("class") sets = obj.getElementsByTagName("sets") for set in sets: tuName=set.getAttribute("attr") if set.firstChild.TEXT_NODE: ts = set.firstChild.data ts = ts.replace("\"","") ts = ts.replace("'","") ts = re.sub("\s$", "", ts, 10) ts = re.sub("^\s", "", ts, 10) if objClass!="signalImp": tsList = re.split("\s", ts) channel=0 group=0 imp=0 #получить номера канала, группы и импульса try: channel = string.atoi(tsList[1]) group = string.atoi(tsList[2]) imp = string.atoi(tsList[3]) except: donothing=0 # отправить на обработку объекту класса matrix.Matrix if not (imp==0 or group==0): self.channels.append(channel) self.groups.append(group) self.impulses.append(imp) p="" try: p=vocTU.voc[tuName] except: donothing=0 if objTitle!="": if p!="": self.names.append(str(objTitle.encode("utf-8"))+" ("+str(p)+")") else: self.names.append(str(objTitle.encode("utf-8"))+" ("+str(tuName)+")") else: if p!="": self.names.append(str(objName)+" ("+str(p)+")") else: self.names.append(str(objName)+" ("+str(tuName)+")") #except: # donothing=0 except: print "Не получилось обработать файл "+str(self.path)+"/"+str(file)+" (пропущено)" continue fromRoots=ra.getRoots() for root in fromRoots: self.channels.append(root[0]) self.groups.append(root[1]) self.impulses.append(root[2]) #self.names.append(vocTU.voc[root[3]]) try: self.names.append(vocTU.voc[root[3]]) except: self.names.append(root[3]) #try: # self.rusNames.append(vocTU.voc[root[3]]) #except: # self.rusNames.append(root[3]) channelsReal = [] #создать копию массива channels for i in self.channels: channelsReal.append(i) channelsReal.sort() self.ch = [] for i in range(0, len(channelsReal)): if i!=0: if channelsReal[i]!=channelsReal[i-1]: self.ch.append(channelsReal[i]) else: self.ch.append(channelsReal[0]) for i in self.ch: print "++++++ Канал = "+str(i) matr = matrix.Matrix() for j in range(0, len(self.groups)): if self.channels[j]==i: matr.append(self.groups[j], self.impulses[j], self.names[j], self.names[j]) self.matrixes.append( matr.getMatrix(_isEmptyGroupsRemove) ) self.XminLines.append( matr.getYmin() ) self.YminLines.append( matr.getXmin() ) self.Xs.append(matr.getXs()) matr = None