2016-08-02 2 views
0

私はPythonで特定のファイルのディレクトリをスキャンし、特定のキーワードを見つけ出し、これらのキーワードが新しいファイルに現れる行を保存するためのスクリプトを書こうとしています。私はこれを思いついた。Pythonのテキスト解析とhtmlとしての保存

import sys, os, glob 

for filename in glob.glob("./*.LOG"): 
with open(filename) as logFile: 
name = os.path.splitext(logFile.name)[0] 
newLOG = open(name + '_ERROR!'+'.LOG', "w") 
allLines = logFile.readlines() 
logFile.close() 
printList = [] 

for line in allLines: 
    if ('ERROR' in line) or ('error' in line): 
    printList.append(line) 

for item in printList: 
    # print item  
    newLOG.write(item) 

これはすべての良いですが、私は多分私はフォントを変更することができるように、私は権利タグ(HTML、ヘッド、ボディ...)でそれをすべてを包むhtmlとしてこの新しいファイルを保存する代わりに試してみようと思いましたキーワードの色。これまでのところ、このように見えます。

import sys, os, glob 

for filename in glob.glob("./*.LOG"): 

with open (filename) as logFile: 
    name = os.path.splitext(logFile.name)[0] 
    newLOG = open(name + '_ERROR!'+'.html', "w") 
    newLOG.write('<html>') 
    newLOG.write('<head>') 
    newLOG.write('<body><p>') 

    allLines = logFile.readlines() 
    logFile.close() 
    printList = [] 

    for line in allLines: 
     if ('ERROR' in line) or ('error' in line): 
     printList.append(line) 

    for item in printList: 
     # print item 

     newLOG.write('</html>') 
     newLOG.write('</head>') 
     newLOG.write('</body><p>') 
     newLOG.write(item) 

が今の問題は、私はこれに新たなんだと、私のHTMLタグがループ内から追加されているので、私はまだ..くぼみと連携し、ループする方法を理解しようとしているで、すべての行があり <html><head> & <body><p>タグがあり、間違っています。私は問題を理解し、タグがループの外に適用されるように書き直しを試みましたが、それほど成功しませんでした。

誰かが、現在のファイルのファイル名を取得し、新しいファイルを作成して+追加するより良い方法を私に教えてもらえますか?これが、すべての仕組みを変更しようとすると、 。

ありがとうございました

答えて

1

正しいレベルに行をインデントすることです。ヘッダー行の字下げレベルでHTMLフッターを出力し、ループ内で字下げしないでください。これを試してみてください:

printListを使用する必要はありません。ログを通過するときにHTMLコードを出力するだけでよいことに注意してください。

これを再利用性と可読性のために小さな関数に分割することを検討してください。

+0

こんにちは、助けてくれてありがとうございます。最後の行の引用を修正することで修正されたEOL関連のエラーが発生しましたが、os.path行にlogfileが定義されていない(理解できない)というエラーが表示されています。 "name + os.path ..."の前に "logFileとしてopen(filename、 'r')を指定していますが、その行の残りの部分にエラーがスローされます。 "無効な構文=/ – Skyone

+0

としてout(name + '_ERROR!.html'、 'w')をoutfileとして開く:その問題を修正しました。 – Owen

+0

華麗なありがとう! これで、正しいタグにキーワードをラップする方法を理解して、別の色にする必要があります。 サイド質問。このようなものですか? キーワード に行く最善の方法か、私はCSSと一緒に行かなければなりません。 もう一度ありがとうございます。 – Skyone

関連する問題