嵌套for循环

时间:2010-05-28 20:21:07

标签: python loops nested

只是学习Python并试图做一个嵌套的for循环。我最后要做的是在文件中放置一堆电子邮件地址,让这个脚本找到信息,比如邮件ID的发送IP。现在我正在我的/var/log/auth.log文件上测试它

到目前为止,这是我的代码:

#!/usr/bin/python

# this section puts emails from file(SpamEmail) in to a array(array)
in_file = open("testFile", "r")
array = in_file.readlines()
in_file.close()

# this section opens and reads the target file, in this case 'auth.log'
log = open("/var/log/auth.log", "r")
auth = log.readlines()

for email in array:
    print "Searching for " +email,
    for line in auth:
         if line.find(email) > -1:
                about = line.split()
                print about[0],
    print

在'testfile'里面我有'disconnect'这个词因为我知道它在auth.log文件中。它只是没有找到“断开连接”这个词。在“if line.find(email)> -1:”行中,我可以替换电子邮件并将“disconnect”设置为“disconnect”,这样脚本就可以了。

有什么想法吗? 提前致谢。 加里

2 个答案:

答案 0 :(得分:1)

我不太确定你在问什么,但上面的一个明显问题是readlines()返回一个行列表,每行(除了可能是最后一行)都会有一个{{1行终止符。因此\n会在最后添加换行符,因此除非在最后,否则不会在email中找到。

或许类似于:

line

答案 1 :(得分:0)

我明白了。我需要添加from __future__ import with_statement