天天看点

python学习 根据日志中的ip和url排序

<code>#!/usr/bin/env python</code>

<code>#coding:utf-8</code>

<code>def</code> <code>open_file(file_name):</code>

<code>    </code><code>res</code><code>=</code><code>{}</code>

<code>    </code><code>with </code><code>open</code><code>(file_name) as f:</code>

<code>        </code><code>for</code> <code>line </code><code>in</code> <code>f:</code>

<code>            </code><code>tmp</code><code>=</code><code>line.split(</code><code>' '</code><code>)</code>

<code>#           print tmp</code>

<code>            </code><code>ip,url</code><code>=</code><code>tmp[</code><code>0</code><code>],tmp[</code><code>6</code><code>]</code>

<code>#       print ip,url 以元组的形式存到列表中</code>

<code>            </code><code>res[(ip,url)]</code><code>=</code><code>res.get((ip,url),</code><code>0</code><code>)</code><code>+</code><code>1</code>

<code>    </code><code>return</code> <code>sorted</code><code>(res.items(),key</code><code>=</code><code>lambda</code>  <code>x:x[</code><code>1</code><code>],reverse</code><code>=</code><code>True</code><code>)</code>

<code>#print open_file('log1.log')</code>

<code>def</code> <code>get_htmlstr(arr):</code>

<code>#拼接字符串</code>

<code>    </code><code>tmp1</code><code>=</code><code>'&lt;tr&gt;&lt;td&gt;Num%s&lt;/td&gt; &lt;td&gt;%s&lt;/td&gt; &lt;td&gt;%s&lt;/td&gt; &lt;td&gt;%s&lt;/td&gt;&lt;/tr&gt;'</code>

<code>    </code><code>html_str</code><code>=</code><code>'&lt;table border="1px"&gt;'</code><code>+</code><code>tmp1</code><code>%</code><code>(</code><code>'名次'</code><code>,</code><code>'IP'</code><code>,</code><code>'URL'</code><code>,</code><code>'COUNT'</code><code>)</code>

<code>    </code><code>for</code> <code>index,value </code><code>in</code>  <code>enumerate</code><code>(arr[:</code><code>10</code><code>]):</code>

<code>        </code><code>html_str</code><code>+</code><code>=</code><code>'&lt;tr&gt;&lt;td&gt;Num%s&lt;/td&gt; &lt;td&gt;%s&lt;/td&gt; &lt;td&gt;%s&lt;/td&gt; &lt;td&gt;%s&lt;/td&gt;&lt;/tr&gt;'</code> <code>%</code><code>(index,value[</code><code>0</code><code>][</code><code>0</code><code>],value[</code><code>0</code><code>][</code><code>1</code><code>],value[</code><code>1</code><code>])</code>

<code>    </code><code>html_str</code><code>+</code><code>=</code><code>'&lt;/table&gt;'</code>

<code>    </code><code>return</code> <code>html_str</code>

<code>def</code> <code>write_html(file_name):</code>

<code>    </code><code>res</code><code>=</code><code>open_file(file_name)</code>

<code>    </code><code>with </code><code>open</code><code>(</code><code>'res2.html'</code><code>,</code><code>'w'</code><code>) as f:</code>

<code>        </code><code>f.write(get_htmlstr(res))</code>

<code>write_html(</code><code>'log1.log'</code><code>)</code>

本文转自 shouhou2581314 51CTO博客,原文链接:http://blog.51cto.com/thedream/1831648,如需转载请自行联系原作者