搜索文件中列表的元素

时间:2017-07-24 15:06:15

标签: python-3.x

列表名称是磁盘及其下面: 磁盘

['5000cca025884d5\n', '5000cca025a1ee6\n']

文件名是p,下面是:

  1. c0t5000CCA025884D5Cd0 solaris       / scsi_vhci /磁盘@ g5000cca025884d5c

    1. c0t5000CCA025A1EE6Cd0   / scsi_vhci /磁盘@ g5000cca025a1ee6c

    2. c3t50060E8007DB981Ad1   / PCI @ 400 / PCI @ 1 / PCI @ 0 / PCI @ 8 / SUNW,emlxs @ 0 / FP @ 0,0 / SSD @ w50060e8007db981a,1

    3. c3t50060E8007DB981Ad2   / PCI @ 400 / PCI @ 1 / PCI @ 0 / PCI @ 8 / SUNW,emlxs @ 0 / FP @ 0,0 / SSD @ w50060e8007db981a,2
    4. c3t50060E8007DB981Ad3   / PCI @ 400 / PCI @ 1 / PCI @ 0 / PCI @ 8 / SUNW,emlxs @ 0 / FP @ 0,0 / SSD @ w50060e8007db981a,3-
      1. c3t50060E8007DB981Ad4
  2. 我想搜索文件

    中列表的元素

1 个答案:

答案 0 :(得分:2)

这里有几件事要看:

之前我没有真正使用过 List<Integer> li = Arrays.asList(1, 3, 2, 4, 5, 8, 9); IntStream.range(0, li.size() - 2) .mapToObj(i -> li.stream().skip(i).limit(3)) .map(x -> x.sorted().skip(1).findFirst().get()) .forEach(System.out::println); ,但我可以看到第一个问题:re.match()列表在每个条目后都有换行符,这样会搞乱匹配。此外,disks仅匹配行的开头。您的行以数字开头,因此您需要使用re.match()在行中搜索。最后,你应该使它不区分大小写;这个选项的一个选项是将所有内容都设为小写,就像re.search()列表一样。

尝试调整你的循环:

disks

如果这不能解决问题,我会尝试在循环的每次迭代中打印出#.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 disks[0].strip()(不仅仅是当它与if子句匹配时)以确保它正在读取你认为它是什么。