2013-04-10 67 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()