我正在运行一个将一堆信息转储到目录中的文件的进程。我稍后运行相同的过程并对目录进行比较以查看发生了什么变化。由于内存地址,我得到了一堆错误的更改。
例如:
运行 1 给出
0xb7390dd0
运行 2 给出
0xb73909c8
我希望能够忽略内存地址不同的事实?实现这一目标的最佳方法是什么?
我不能使用.replace()
,因为我事先不知道地址是什么。
我正在运行一个将一堆信息转储到目录中的文件的进程。我稍后运行相同的过程并对目录进行比较以查看发生了什么变化。由于内存地址,我得到了一堆错误的更改。
例如:
运行 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'