Python は初めてで、基本的なログ ファイルの特定の行を選択するスクリプトを作成しています。
基本的に、この関数はファイルの行を検索し、別のファイルに出力したい行を見つけると、それをリストに追加し、その次の 5 行も追加します。これにより、別の関数の最後に別のファイルに出力されます。
それに続いて私がやろうとしてきたことは、ループをジャンプして、それらをもう一度繰り返すのではなく、これらの 5 行の最後の行から続行することです。コードの最後の行で問題が解決すると思っていましたが、残念ながらそうではありませんでした。
この目的で使用できる for ループの推奨されるバリエーションはありますか?
def readSingleDayLogs(aDir):
print 'Processing files in ' + str(aDir) + '\n'
lineNumber = 0
try:
open_aDirFile = open(aDir) #open the log file
for aLine in open_aDirFile: #total the num. lines in file
lineNumber = lineNumber + 1
lowerBound = 0
for lineIDX in range(lowerBound, lineNumber):
currentLine = linecache.getline(aDir, lineIDX)
if (bunch of logic conditions):
issueList.append(currentLine)
for extraLineIDX in range(1, 6): #loop over the next five lines of the error and append to issue list
extraLine = linecache.getline(aDir, lineIDX+ extraLineIDX) #get the x extra line after problem line
issueList.append(extraLine)
issueList.append('\n\n')
lowerBound = lineIDX