私はPythonのdoctestモジュールからouputを解析し、それをHTMLファイルに保存しようとしています。このテキストファイルを処理して必要なものを解析するにはどうすればよいですか?
私は、このような出力を持っている:
**********************************************************************
File "example.py", line 16, in __main__.factorial
Failed example:
[factorial(n) for n in range(6)]
Expected:
[0, 1, 2, 6, 24, 120]
Got:
[1, 1, 2, 6, 24, 120]
**********************************************************************
File "example.py", line 20, in __main__.factorial
Failed example:
factorial(30)
Expected:
25252859812191058636308480000000L
Got:
265252859812191058636308480000000L
**********************************************************************
1 items had failures:
2 of 8 in __main__.factorial
***Test Failed*** 2 failures.
各故障が互いから各テストの失敗を区切るアスタリスクの行が先行しています。
期待した結果と実際の結果だけでなく、失敗したファイル名と方法を削除します。次に、これを使ってHTML文書を作成したい(またはテキストファイルに格納してから、2回目の解析を行います)。
これを行うにはどうすればいいですか?単なるPythonまたはUNIXシェルユーティリティの組み合わせを使用してください。
EDIT:私はどのように各ブロックにマッチする以下のシェルスクリプトを作成しましたが、各sedのマッチを自分のファイルにリダイレクトする方法は不明です。
python example.py | sed -n '/.*/,/^\**$/p' > `mktemp error.XXX`
ファイル、メソッド、期待値と実際の結果を削除すると、何が残っていますか? – juanjux
これまでは、個々のフィールドではなく、一度にブロック全体を取り込むことしかできないため、別々のチャンクに解析するのに問題がありました。 – samoz