1

ディレクトリ内のファイルに大量の情報をダンプするプロセスを実行しています。後で同じプロセスを実行し、ディレクトリで diff を実行して、何が変更されたかを確認します。メモリアドレスが原因で、誤った変更が多数発生しています。

例えば:

  1. 実行1が与える

    0xb7390dd0
    
  2. 2回実行すると

    0xb73909c8
    

メモリアドレスが異なるという事実を無視できるようにしたいですか? これを達成するための最良の方法は何ですか?

.replace()事前にアドレスがわからないので使えません。

4

1 に答える 1

1

値のパターンに一致する正規表現を作成し、一致した値を置き換えることができます

>>> 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'
于 2013-02-21T15:37:22.340 に答える