迭代文件以查找字符串和输出信息

时间:2014-07-01 06:25:41

标签: python iteration

我正在尝试从文件中打印出某些信息。我有一个文件,我试图在每一行上迭代设置为变量,并在找到该字符串时打印某些输出。

我正在迭代的文件称为“代理”,包含两个IP地址。

我正在搜索的文件,如果该文件中存在IP地址,则称为“快照”。

这是我的代码:

for agn in iter(open('agent')):
    for line in open('snaps'):
        if agn in line:
            print line.strip()

当我运行脚本时,它不会出错。它只是不打印任何东西。应该打印的内容如下:

10.0.69.184@1403769709
10.0.69.184@1403775680
10.0.69.152@1403632141
10.0.69.152@1403714562

3 个答案:

答案 0 :(得分:2)

不知道你的文件是什么样的,但我想你可能想把你的嵌套循环解决方案改为:

with open('agent') as f1:
    for agn in f1:
        with open('snaps') as f2:
            for line in f2:
                if agn in line:
                    print line.strip()

答案 1 :(得分:2)

如果它只包含两个IP地址,请先将文件读入一个列表,然后在读取第二个文件时在该列表中搜索,如下所示:

with open('agent.txt') as f:
    ip_addresses = list(i.rstrip() for i in f)

with open('snaps.txt') as f:
    for line in f:
        if line.split('@')[0] in ip_addresses:
            print(line)

答案 2 :(得分:1)

我能够解决它。

for agn in iter(open('agent')):
    for line in open('snaps'):
            if str(agn).strip() in line:
                    print line.strip()

感谢您的建议。非常感谢。