我正在运行将一堆信息转储到目录中的文件的进程。我稍后运行相同的过程,并对目录进行比较以查看发生了什么变化。由于内存地址的缘故,我收到了一些虚假的更改。替换字符串中的未知值
例如:
运行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'
您可以创建一个正则表达式匹配的价值模式和替换匹配值 – avasal 2013-02-21 15:31:55
为什么不从你首先转储的信息中排除内存地址? – 2013-02-21 15:38:50