如何在文件中搜索列表的元素

时间:2017-07-20 15:27:05

标签: python-2.7

请检查搜索文件中列表元素的代码。

f=open("a.txt","r")
p=open("b.txt","r")
disk=[]
for line in p:
    line = line.strip()
    disk.append(line)


for line in f.readlines():
    for word in disk[0]:
        if word in line:
            print line

列表如下:

>>> disk
['5000cca025884d5', '5000cca025a1ee6']

我想在下面的文件中搜索此列表元素,但我没有得到索引0的输出。

c0t5000CCA025A1EE6Cd0 <preSUN30G-A2B0-279.40GB> /scsi_vhci/disk@g5000cca025a1ee6c


1. c0t5000CCA025A28FECd0 <preSUN30G-A2B0-279.40GB> i/disk@g5000cca025a28fec
2. c0t5000CCA0258BA1DCd0 <HsdfdsSUN30G-A2B0 cyl 46873 alt 2 hd 20 sec 625> i/disk@g5000cca0258ba1dc
3. c0t5000CCA025884D5Cd0 <UN300G cyl 46873 alt 2 hd 20 sec 625>  solaris i/disk@g5000cca025884d5c
4. c0t5000CCA02592705Cd0 <UN300G cyl 46873 alt 2 hd 20 sec 625>  solaris i/disk@g5000cca02592705c

1 个答案:

答案 0 :(得分:0)

代码中出现的唯一错误是:

  for word in disk[0]:

正如我在评论中提到的,这样做是抓取disk列表中的第一个字符串并开始迭代各个字符。这将导致a.txt中的大多数行被多次打印。

另一个可能的问题是将两个文件向后移动。当我试图复制你的问题时,我偶然做到了这一点。如果文件是向后的,则不会打印任何内容,因为a.txt中的所有行都不在b.txt中(事实上,大多数行都长得多)。

这是显示程序正常运行的project on repl.it