Python 搜索文件中包含特定单词/字符串组合的每一行列表

Python 搜索文件中包含特定单词/字符串组合的每一行列表,python,if-statement,search,Python,If Statement,Search,我试图从文件的每一行中搜索特定的单词,如果找到这些单词,它们就会起作用 例如,我有一个包含姓名列表的文件 pSet02Hw codeid xxxxx Set01Mt codeid xxxxx Set02Mt codeid xxxxx pSet03Hw codeid xxxxx pSet07Hw codeid xxxxx pset01hw codeid xxxxx set03mt codeid xxxxx 我读了文件中的每一行。从这个文件中,我想搜索得到set的行和hw而不是execute pr

我试图从文件的每一行中搜索特定的单词,如果找到这些单词,它们就会起作用

例如,我有一个包含姓名列表的文件

pSet02Hw codeid xxxxx
Set01Mt codeid xxxxx
Set02Mt codeid xxxxx
pSet03Hw codeid xxxxx
pSet07Hw codeid xxxxx
pset01hw codeid xxxxx
set03mt codeid xxxxx
我读了文件中的每一行。从这个文件中,我想搜索得到set的行和hw而不是execute process1,如果得到set的行和mt而不是execute 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”的组合,但没有正常工作


请告诉我正确的方法。谢谢大家。

在这个问题上使用正则表达式会让您受益匪浅。示例代码如下:

重新导入
pattern1=re.compile(r'^pset\d{2}hw',re.IGNORECASE)
pattern2=re.compile(r'^set\d{2}mt',re.IGNORECASE)
#假设您的行列表已细分为列表列表:
对于行列表中的行:
如果重新搜索(模式1,第[0]行):
#执行流程1
elif检索(模式2,第[0]行):
#执行流程2

上面的正则表达式模式更像是一个指南,但可以根据您的喜好进行调整。

我假设
linelist[0]
是空格前面的第一个字符串。我怀疑您希望条件在行列表[0]中设置为“set”,在行列表[0]中设置为“hw”是的,先生。。。这是空格前的第一个字符串在行列表[0]中有这样的“set”和“hw”好吗。。。。但是我在linelist[0]中的区分大小写的
“set”上仍然有问题。linelist[0]中的lower()和“hw”。lower()
可以使其区分大小写。不用担心。如果你能把这个标记为答案,那就太好了:D