Package PyFoam :: Package RunDictionary :: Module ParameterFile
[hide private]
[frames] | no frames]

Source Code for Module PyFoam.RunDictionary.ParameterFile

 1  #  ICE Revision: $Id: /local/openfoam/Python/PyFoam/PyFoam/RunDictionary/ParameterFile.py 1906 2007-08-28T16:16:19.392553Z bgschaid  $  
 2  """Working with parameter-files""" 
 3   
 4  import re,os 
 5   
 6  from PyFoam.Basics.LineReader import LineReader 
 7  from FileBasis import FileBasisBackup 
 8   
9 -class ParameterFile(FileBasisBackup):
10 """Represents a OpenFOAM parameter file""" 11
12 - def __init__(self,name,backup=False):
13 """@param name: The name of the parameter file 14 @param backup: create a backup-copy of the file""" 15 16 FileBasisBackup.__init__(self,name,backup=backup)
17
18 - def parameterPattern(self,parameter):
19 """creates a regular expression that looks for aparameter 20 21 parameter - name of the parameter""" 22 return re.compile("(.*) *"+parameter+" +(.*) *;(.*)")
23
24 - def readParameter(self,parameter):
25 """reads the value of a parameter 26 27 parameter - name of the parameter""" 28 exp=self.parameterPattern(parameter) 29 30 l=LineReader() 31 self.openFile() 32 33 erg="" 34 35 while l.read(self.fh): 36 m=exp.match(l.line) 37 if m!=None: 38 if m.group(1).find(self.removedString)<0: 39 erg=m.group(2) 40 break 41 42 self.closeFile() 43 return erg
44
45 - def replaceParameter(self,parameter,newval):
46 """writes the value of a parameter 47 48 @param parameter: name of the parameter 49 @param newval: the new value 50 @return: old value of the parameter""" 51 52 oldVal=self.readParameter(parameter) 53 54 exp=self.parameterPattern(parameter) 55 56 l=LineReader() 57 self.openFile() 58 59 (fh,fn)=self.makeTemp() 60 61 while l.read(self.fh): 62 toPrint=l.line 63 64 m=exp.match(l.line) 65 if m!=None: 66 if m.group(1).find(self.removedString)<0: 67 toPrint =self.removedString+l.line+"\n" 68 toPrint+=parameter+" "+str(newval)+"; "+self.addedString 69 fh.write(toPrint+"\n") 70 71 self.closeFile() 72 fh.close() 73 os.rename(fn,self.name) 74 75 return oldVal
76