1

ログファイルでテキスト文字列の出現を検索する作業中のPythonスクリプトに問題があり、見つかった場合はそれらを別のファイルに出力し、breakを使用しようとしましたが、それでプロセスが終了し、最終的に他のファイルのエントリは 1 つだけです。break を使用しない場合、テキストを含まないすべての行に終了ステートメントが適用されます。ソース ログ ファイルのどの行にもテキストが表示されません。新しいログ ファイルに 1 行だけ出力して、何も見つからなかったことを伝えたいのですが、これが現在試しているコードです。

with open("/var/log/syslog", "r") as vpnfile:
    for line in vpnfile:
        if "failed CHAP" in line:
            print (line,)
        elif "failed CHAP" not in line:    
            continue
        else:
            print ("Nadda")
4

1 に答える 1

0

これはあなたが意味するものですか?

found = []
with open("/var/log/syslog", "r") as vpnfile:
    for line in vpnfile:
        if "failed CHAP" in line:
            found.append(line)
        # no need to check if "failed CHAP" is not in the line, since you
        # already know it's not there from the first test failing
if found:
    print(" ".join(found))
else:
    print("Nadda")
于 2012-12-06T21:03:41.200 に答える