文字列を抽出しようとしているバイナリ ファイルがあり、それを行うのにかなりの時間を費やしています。:(
私の現在の戦略は、Python を使用してファイルを読み込むことです (次の関数のいずれかを使用します: read()、readline()、または readlines())。次に、行を (1 文字ずつ) 解析し、特殊文字 'ô' を探します。ほとんどの場合、これは目的の文字列の直後に続きます! 最後に、「有効」であると識別したすべての文字を記録する特別な文字から逆方向に解析します。
結局のところ、先頭のタイム スタンプと、行内の次の 3 つの文字列が必要です。
結果:
入力例の行 #1 では、「読み取り」関数は行全体を読み取りません (出力イメージに示されています)。これは、関数がバイナリを EOF char として解釈し、読み取りを停止したためだと思います。
例の 2 行目で、「特殊文字」が表示される場合がありますが、抽出したい文字列の後ではありません。:(
このデータを解析するより良い方法はありますか? そうでない場合、#1 の例に見られる問題を解決する方法はありますか?
行を読み取ったまま印刷した場合の入力データと結果の出力データの例。ご覧のとおり、使用時に行全体を読み取るわけではありませんreadlines()
参考までに、効率は必ずしもインポートではありません。