python-3.x 如何将变量赋值给文本文件中的值,并检查它是否满足给定条件?

hgc7kmma  于 2022-11-26  发布在  Python
关注(0)|答案(1)|浏览(168)

我有一个. 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"

我需要检查它是否满足条件,即检查信息值是否为数字“0x12”+ 0x00000004 = number="0x356"的信息值。
如果它与print匹配,则结果值与给定的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):

但这只是提取数字和信息值。

7xllpg7q

7xllpg7q1#

把它分成几个步骤。
1.查找如何逐行读取文本文件。您将得到该文件的行列表。
1.弄清楚如何从“数字”字段中提取值。我认为一个简单的正则表达式在这里会很好地为您服务。
1.[选择性]将此值转换为适合您问题的正确资料类型。
1.做你感兴趣的比较。
我想你可以很容易地在谷歌上搜索所有这些语法。
编辑:在原帖子中没有任何代码之前就发布了。我不太确定问题是什么了。你需要帮助调试吗?
编辑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"

相关问题