次のpython 2.5スクリプトは機能しますが、私は初心者なので、明らかな間違いや、達成しようとしているより良い方法があるのではないかと思いますか?
目的は、当日のログ (「/Library/Application Support/Perceptive Automation/Indigo 5/Logs/」) を開いて、単語エラーを含む行を抽出し、新しいエラーのみを電子メールで送信することです。エラー行が抽出された後、 で行数がカウントされます ( prenumLines
) tmp.txt
。次に、抽出された行がtmp.txt
ファイルに書き込まれ、行が再度カウントされます ( postnumLines
)。より大きい行番号prenumLines
は「theBody」に出力され、電子メールで送信されます。
from datetime import date
import linecache
fileDate = str(date.today())
theBody = []
tmpFile = open('/Library/Application Support/Perceptive Automation/Indigo 5/Logs/tmp.txt')
prenumLines = sum(1 for line in tmpFile)
log= open( '/Library/Application Support/Perceptive Automation/Indigo 5/Logs/' + fileDate + ' Events.txt', 'r' )
tmpFile = open('/Library/Application Support/Perceptive Automation/Indigo 5/Logs/tmp.txt', 'w')
for line in log:
if 'Error' in line:
tmpFile.write(line )
log.close()
tmpFile.close()
postnumLines = sum(1 for line in open('/Library/Application Support/Perceptive Automation/Indigo 5/Logs/tmp.txt'))
lineNum = prenumLines
while lineNum < postnumLines:
theBody.append(linecache.getline( '/Library/Application Support/Perceptive Automation/Indigo 5/Logs/tmp.txt', lineNum + 1) )
lineNum = lineNum + 1
tmpFile.close()
theBody = "".join(theBody)
#theBody is the body of an email which is sent next
#print theBody