ディレクトリ内のファイルに大量の情報をダンプするプロセスを実行しています。後で同じプロセスを実行し、ディレクトリで diff を実行して、何が変更されたかを確認します。メモリアドレスが原因で、誤った変更が多数発生しています。
例えば:
実行1が与える
0xb7390dd0
2回実行すると
0xb73909c8
メモリアドレスが異なるという事実を無視できるようにしたいですか? これを達成するための最良の方法は何ですか?
.replace()
事前にアドレスがわからないので使えません。
ディレクトリ内のファイルに大量の情報をダンプするプロセスを実行しています。後で同じプロセスを実行し、ディレクトリで diff を実行して、何が変更されたかを確認します。メモリアドレスが原因で、誤った変更が多数発生しています。
例えば:
実行1が与える
0xb7390dd0
2回実行すると
0xb73909c8
メモリアドレスが異なるという事実を無視できるようにしたいですか? これを達成するための最良の方法は何ですか?
.replace()
事前にアドレスがわからないので使えません。
値のパターンに一致する正規表現を作成し、一致した値を置き換えることができます
>>> pattern = r'0x\w{8}'
>>> matcher = re.compile(pattern)
>>> matcher.match('0xb73909c8: has the error')
<_sre.SRE_Match object at 0x01E25288>
>>> matcher.match('0xb73909c8: has the error').group()
'0xb73909c8'
その後、あなたはすることができます
>>> '0xb73909c8: has the error'.replace(matcher.match('0xb73909c8: has the error').group(), 'Address')
'Address: has the error'