只是学习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”,这样脚本就可以了。
有什么想法吗? 提前致谢。 加里
答案 0 :(得分:1)
我不太确定你在问什么,但上面的一个明显问题是readlines()
返回一个行列表,每行(除了可能是最后一行)都会有一个{{1行终止符。因此\n
会在最后添加换行符,因此除非在最后,否则不会在email
中找到。
或许类似于:
line
答案 1 :(得分:0)
我明白了。我需要添加from __future__ import with_statement
。