別のプログラムからのエラーをログに記録し、エラーが発生したときに中断したところからプログラムを再起動するスクリプトを作成しています。何らかの理由で、このプログラムの開発者は、この機能をデフォルトでプログラムに組み込む必要があるとは感じていませんでした。
とにかく、プログラムは入力ファイルを受け取り、それを解析し、出力ファイルを作成します。入力ファイルは特定の形式です。
UI - 26474845
TI - the title (can be any number of lines)
AB - the abstract (can also be any number of lines)
プログラムがエラーをスローすると、エラーを追跡するために必要な参照情報が提供されます。つまり、UI、セクション (タイトルまたは要約)、およびタイトルまたは要約の先頭からの行番号です。参照番号とファイルを取得し、文を見つけてログに記録する関数を使用して、入力ファイルから問題のある文をログに記録したいと考えています。私が考える最善の方法は、ファイルを特定の回数 (つまり、n 回、n はセクションの先頭からの相対行番号) だけ進むことです。これを行うのに理にかなっていると思われる方法は次のとおりです。
i = 1
while i <= lineNumber:
print original.readline()
i += 1
これがどのようにデータを失うことになるのかわかりませんが、Python はそうなると考え、ValueError: Mixing iteration and read methods would lose data
. これを適切に行う方法を知っている人はいますか?