파이썬 정규 표현식을 사용하여 정보를 추출하기 위해 매우 큰 로그 파일을 처리하고 있습니다. 그러나 특정 문자열 (이 경우 Starting time loop
)을 찾은 후에 만 모든 행을 처리하고 싶습니다. 파이썬을 사용하여 텍스트 파일의 라인을 건너 뛰기
Pstream initialized with:
floatTransfer : 0
nProcsSimpleSum : 0
commsType : nonBlocking
polling iterations : 0
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Disallowing user-supplied system call operations
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time
Create mesh for time = 0
PIMPLE: Operating solver in PISO mode
Reading g
Reading relaxProperties
Reading field p_rgh
Reading field alpha1
Reading field Urel
Reading/calculating face flux field phi
Reading transportProperties
Selecting incompressible transport model Newtonian
Selecting incompressible transport model Newtonian
Selecting turbulence model type LESModel
Selecting LES turbulence model Smagorinsky
Selecting LES delta type vanDriest
Selecting LES delta type cubeRootVol
SmagorinskyCoeffs
{
ce 1.048;
ck 0.02;
}
Reading STFProperties
Calculating field g.h
time step continuity errors : sum local = 8.4072346e-06, global = -1.5271655e-21, cumulative = -1.5271655e-21
GAMGPCG: Solving for pcorr, Initial residual = 1, Final residual = 4.7194845e-06, No Iterations 9
GAMGPCG: Solving for pcorr, Initial residual = 0.13716381, Final residual = 2.9068099e-06, No Iterations 6
time step continuity errors : sum local = 1.3456802e-10, global = -6.7890391e-13, cumulative = -6.7890392e-13
Courant Number mean: 0.021611246 max: 0.39023401
fieldAverage fieldAverage1:
Starting averaging at time 0
Starting time loop
Courant Number mean: 0.02156811 max: 0.3894551
Interface Courant Number mean: 0 max: 0
deltaT = 0.00022522523
Time = 0.000225225
은 현재 테스트 스크립트는 다음과 같다
: 로그 파일의 최소 버전은 다음과 같습니다logf = open(logName, 'r')
p = logf.tell()
logf.seek(0, 0)
for l in logf:
if l.startswith('Starting time loop'):
print l
그러나 print l
인쇄 로그 파일의 모든 라인. 로그 파일은 logf
으로 열어졌습니다.