Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在文件中搜索列表元素_Python 3.x - Fatal编程技术网

Python 3.x 在文件中搜索列表元素

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

列表名为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

  • c3t50060E8007DB981Ad2 /pci@400/pci@1/pci@0/pci@8/SUNW,emlxs@0/fp@0,0/ssd@w50060e8007db981a,2
  • c3t50060E8007DB981Ad3 /pci@400/pci@1/pci@0/pci@8/SUNW,emlxs@0/fp@0,0/ssd@w50060e8007db981a3.
  • c3t50060E8007DB981Ad4

  • 我想在文件中搜索列表的元素

    这里有几点要看:

    我以前没有实际使用过
    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