如何将变量分配给文本文件中的值,并检查它是否满足给定条件?



我有一个文件in.txt

name="XYZ_PP_0" number="0x12" bytesize="4" info="0x0000001A"
name="GK_LMP_2_0" number="0xA5" bytesize="8" info="0x00000000bbae321f"
name="MP_LKO_1_0" number="0x356" bytesize="4" info="0x00000234"

我需要检查它是否满足检查如果info value的条件编号0x12"+ 0x00000004 =number="0x356". info值

如果匹配,打印结果值与给定的number="0x356"信息值匹配。

我该怎么做?

这是当前尝试:

import re
pattern = r'(number="w+").*(info="w+")'
with open("in.txt", "rb") as fin:
for line in fin:
for match_number, match_info in re.findall(pattern, line):

,但这将简单地提取数字和信息值。

把它分成几个步骤。

  1. 查看如何逐行读取文本文件。您将得到该文件的行列表。
  2. 找出如何从"数字"中提取值;字段。我认为一个简单的正则表达式可以很好地为您服务。
  3. [可选]将此值转换为针对您的问题的正确数据类型。
  4. 做你感兴趣的比较。

我认为你可以很容易地谷歌所有这些语法。

编辑:在原始帖子中有任何代码之前发布。我已经不太确定问题是什么了。您需要调试帮助吗?

编辑2:再试一次,因为我认为你要求RegEx语法。

改变你的RegEx模式,在你想要提取的信息周围加上括号。这种模式的RegEx匹配将允许您将此括号内的值分配给Python变量。

参见这个部分示例。

import re
pattern = r'number=("w+").*info=("w+")'
s = 'name="XYZ_PP_0" number="0x12" bytesize="4" info="0x0000001A"'
m = re.search(pattern, s)
if m:
number, info = m.groups()
print("number is ", number)
print("info is", info)
# number is  "0x12"
# info is "0x0000001A"

最新更新