Python 3.x 在文件中搜索列表元素
列表名为disk,其名称如下: 磁盘 文件名为p,其名称如下:Python 3.x 在文件中搜索列表元素,python-3.x,Python 3.x,列表名为disk,其名称如下: 磁盘 文件名为p,其名称如下: c0t5000CCA025884D5Cd0 solaris /scsi_vhci/disk@g5000cca025884d5c c0t5000CCA025A1EE6Cd0 /scsi_vhci/disk@g5000cca025a1ee6c c3t50060E8007DB981Ad1 /pci@400/pci@1/pci@0/pci@8/SUNW,emlxs@0/fp@0,0/ssd@w50060e8007db981a,1 c3t50
我想在文件中搜索列表的元素这里有几点要看: 我以前没有实际使用过
re.match()
,但我可以看到第一个问题:您的磁盘列表在每个条目后都有一个换行符,这样会打乱匹配。另外,re.match()
仅从行首开始匹配。您的行以数字开头,因此需要在行中使用re.search()
进行搜索。最后,您应该使其不区分大小写;d的一个选项是使所有内容都像磁盘
列表一样小写
尝试调整循环,如下所示:
#.strip() will get rid of new lines and .lower() will make the string lowercase
for line in q:
if re.search(disks[0].strip(),line.lower()):
print line
如果这还不能解决问题,我会尝试为循环的每次迭代打印磁盘[0].strip()
和行
(不仅仅是当它匹配If子句时)确保它读取的是您认为的内容。请使用Python帮助查找文件中的列表元素,尝试了以下代码,但无效:对于q:if re.match中的行(磁盘[0],行):print Line当您尝试使用for循环时,会出现什么错误?非常感谢它没有提供任何输出。非常感谢它工作正常。请给搜索字符串C0T5000CCA025884D5CD0正则表达式(本页)提供了一些非常好的解释,帮助您在Python中创建正则表达式,这样您就可以根据自己的愿望创建自己的正则表达式。非常感谢您的帮助。
#.strip() will get rid of new lines and .lower() will make the string lowercase
for line in q:
if re.search(disks[0].strip(),line.lower()):
print line