2014-11-06 49 views
0

我有兩個文件,即fu和fp來分別存儲ip和url。我需要計算用戶請求某個頁面並存儲在二維字典中的次數。要檢查python中的第三個文件iterativley的條目

from collections import defaultdict 
fu_file=open('/home/prasanna/Downloads/fu','r') 
fp_file=open('/home/prasanna/Downloads/fp','r') 
cleaned_file=open('/home/prasanna/Downloads/clean_web_log','r') 
access = defaultdict(dict) 
for user in fu_file: 
    for page in fp_file: 
     count=0 
     for line in cleaned_file: 
       line_words=line.split() 
       if user[:-1]==line_words[1]: 
        if page[:-1]==line_words[2]: 
         count +=1 
       access[user][page]=count 
cleaned_file.close() 
fp_file.close() 
fu_file.close() 

clean_web_log有三個條目大小ip url。 傅文件與新的行字符一個條目的IP,有75項 的FP文件中有一個條目PAGE_URL用新行字符,並有915項

當我執行此,僅輸入fu_file的第一個條目,迭代犯規經過下一行

回答

0

這是因爲當你直接讀取一個文件對象,像這樣:

for page in fp_file: 

文件只能讀一次。如果要多次讀取文件,則需要將文件內容存儲在列表中。

pages = list(fp_file.readlines()) 

for user in fu_file: 
    for page in pages: 

cleaned_file一樣的東西。

+0

謝謝!有沒有什麼辦法可以使它的性能更好,因爲處理 – 2014-11-06 16:05:15

+0

@PrasannaKumar可能需要將近五分鐘的時間,但您需要提供一些三個文件內容的例子。你應該發佈一個關於它的新問題。 – parchment 2014-11-06 16:10:58

+0

好的!我會那樣做的 – 2014-11-06 16:50:49

相關問題