2013-04-10 16 views
0

我正在尝试读取apache访问日志并将所有源ip从那里拉到输出文件。 我是新来的python,所以我不知道我做得对,但它必须在python。试图从apache访问日志解析源IP,并将输出写入文件,但只写入1个IP

#! python 
for line in open('/var/log/apache2/access.log'): 
     ip = line.split(' ')[0] 
print ip 

我知道,此刻的它打印到屏幕上,而不是一个文件,但首先,我试图让脚本工作的第一部分。 当我运行脚本时,它只打印出第一次出现的字符串,这意味着只有1个IP,我认为用for循环运行它会经过文件的每一行,但我想它不起作用我写的

回答

2

你错过了缩进:

#! python 
for line in open('/var/log/apache2/access.log'): 
     ip = line.split(' ')[0] 
     print ip 

并写入文件,你可以使用这样的事情:

#! python 
f = open("ip.txt", "w") 
for line in open('/var/log/apache2/access.log'): 
     ip = line.split(' ')[0] 
     f.write(ip + '\n') 
f.close()