我正在尝试从文件的每一行中搜索特定的单词,如果发现这些单词有作用。
例如,我有一个文件包含名称列表
pSet02Hw codeid xxxxx
Set01Mt codeid xxxxx
Set02Mt codeid xxxxx
pSet03Hw codeid xxxxx
pSet07Hw codeid xxxxx
pset01hw codeid xxxxx
set03mt codeid xxxxx
我读取了文件中的每一行。从文件中,我想搜索设置并比执行process1的行高的行,如果该行设置并比执行process2的行高,则行。除非我仅搜索set,否则下面的代码无法正常工作,但这可能导致执行错误的过程。
if 'sethw' in linelist[0]:
execute process1
elif 'setmt' in linelist[0]:
execute process2
else:
print("No process executed")
break
我尝试过'set'和'hw'的组合,以及'set'和'mt'的组合,但无法正常工作。
[请提供建议并告诉我正确的做法。谢谢大家。
通过在此上使用RegEx,您会过得很好。下面的示例代码:
import re
pattern1 = re.compile(r'^pset\d{2}hw', re.IGNORECASE)
pattern2 = re.compile(r'^set\d{2}mt', re.IGNORECASE)
# Assuming your linelist is already subdivided into list of lists:
for line in linelist:
if re.search(pattern1, line[0]):
# execute process 1
elif re.search(pattern2, line[0]):
# execute process 2
上面的正则表达式模式更多是一个指南,但您可以根据自己的喜好对其进行调整。