Python实战作业-day3

作业需求:

作业1:将nginx日志通过python脚本处理取出TOP10的IP地址和访问次数通过html页面的形式展现出来

作业2:通过python函数的方式实现用户注册、登录脚本的实现

作业代码1:

 1 #/usr/bin/env python
 2 #coding:utf-8
 3
 4 import time
 5
 6 start = time.clock()
 7
 8 # 定义一个空字典
 9 nginxip = {}
10
11 # 打开一个文件以readlines方式进行读取所有行
12 with open(‘access.txt‘) as f:
13     logs = f.readlines()
14
15 # 循环日志文件以空格为分隔符截取位置为0及IP这个元素
16 for line in logs:
17     ip = line.split()[0]
18
19     # 判断ip出现的次数分别以计数的方式写入字典里
20     if ip in nginxip:
21         nginxip[ip] += 1
22     else:
23         nginxip[ip] = 1
24
25 # 定义一个新列表,使用sorted进行降序排列,使用key排序,截取前十个IP
26 list = sorted(nginxip.iteritems(),key=lambda x:x[1],reverse=True)[:10]
27
28 #定义一个html文件,根据html的编排格式写到html文件,然后将k/v的值分别循环写入已经编排好的html边框里面
29 f = open(‘list2.html‘,‘a+‘)
30 f.write("<html><table whith=‘400‘ border=‘1‘ cellpadding=‘1‘‘ cellspacing=‘1‘>")
31 f.write("<title>reboot_homework</title>")
32 f.write("<th style=‘border:solid 1px‘>IP Address</th><th style=‘border:solid 1px‘>Num</th>")
33 # 遍历list列表,enumerate会将该数据对象组合为一个索引序列,同时列出数据和数据下标
34 for k,v in list:
35     f.write(‘<tr><td style="border:solid 1px">%s</td><td style="border:solid 1px">%s</td></tr>‘ % (k,v))
36     print "访问IP和次数:%s --> %s" %(k,v)
37
38 f.write("</table></html>")
39 f.close()
40 end = time.clock()
41 print "统计运行时间: %f s" % (end - start)

代码运行结果1:

作业代码2:

 1 #!/usr/bin/env python
 2 #coding:utf-8
 3
 4 ‘‘‘
 5 通过函数实现用户注册、登陆python脚本
 6 ‘‘‘
 7
 8
 9 # 定义一个登陆函数,在这里并不需要参数
10 def login():
11
12     # 使用input获得用户输入的字符串判断是否存在test文件中
13     username = raw_input("please input your name:").strip()
14     # 定义一个文件并赋予可读的权限
15     login_file = open(‘/Users/guanqing/PycharmProjects/reboot15/day3/test‘,‘r‘)
16     # for循环这个文件并通过‘:‘的格式将用户名和密码传参到usernum和passwordnum
17     for line in login_file.readlines():
18         print line.strip().split(‘:‘)
19         usernum,passwordnum = line.strip().split(‘:‘)
20         # 判断用户以及密码是否正确,用户名和密码错误的时候有相应的提示
21         if username == usernum:
22             pass01 = raw_input("please input your password:").strip()
23             if pass01 == passwordnum:
24                 return "welcome to login."
25             else:
26                 return "your password is wrong."
27         else:
28             return "your username is wrong."
29     login_file.close()
30
31 # 定义一个注册函数
32 def register():
33     # 定义一个文件并赋予权限读写权限
34     register_file = open(‘/Users/guanqing/PycharmProjects/reboot15/day3/test‘, ‘a+‘)
35     username = raw_input("please input your name:").strip()
36     # 判断用户输入是否为空
37     if len(username) == 0:
38         return "your username can‘t empty."
39     else:
40         # 判断用户输入的密码是否正确以及是否为空
41         password = raw_input("please input your password:").strip()
42         repassword = raw_input("please input your password again:").strip()
43         if password != repassword or len(password) == 0:
44             return "the password is wrong. "
45         else:
46             # 将用户输入的账号信息写入到test文件里
47             register_file.write("%s:%s\n" %(username,password))
48             register_file.close()
49             return "congratulations, your register is success."
50
51 # 通过input的方式判断并调用函数
52 def start():
53     action = raw_input("please select:register/login:").strip()
54     if action == "login":
55         res = login()
56     elif action == "register":
57         res = register()
58     else:
59         return "your input is wrong."
60
61     return res
62
63 print start()
时间: 2024-11-05 16:32:34

Python实战作业-day3的相关文章

Python实战作业-day5

作业需求: 用户登录注册页面 首页.注册页面.登录页面:后端存储数据是mysql数据库 作业代码: 1 [email protected]~/reboot15/day5/homework$cat app.py 2 #!/usr/bin/env python 3 #coding:utf-8 4 ''' 5 作业需求: 6 基于mysql数据库实现用户登录模块,并实现针对于用户信息的增删改查 7 ''' 8 9 10 from flask import Flask,render_template,r

Python实战作业-day1

作业需求: 实现用户名密码登录验证 判断用户名密码是否正确,正确则打印欢迎信息,错误输出具体的错误原因信息 用户可以连续输入三次密码,超过三次则锁定用户 用户输入的密码位数必须超过6位 作业流程图: 作业代码: 1 #!/usr/bin/python 2 #coding:utf-8 3 4 5 import sys 6 7 count = 0 8 time = 0 9 10 11 while count < 3: 12 loginuser = raw_input("please input

BoW图像检索Python实战

下文来自我的博客:BoW图像检索Python实战 前几天把HABI哈希图像检索工具包更新到V2.0版本后,小白菜又重新回头来用Python搞BoW词袋模型,一方面主要是练练Python,另一方面也是为了CBIR群开讲的关于图像检索群活动第二期而准备的一些素材.关于BoW,网上堆资料讲得挺好挺全的了,小白菜自己在曾留下过一篇讲解BoW词袋构建过程的博文Bag of Words模型,所以这里主要讲讲BoW的实战.不过在实战前,小白菜还想在结合自己这两年多BoW的思考和沉淀重新以更直白的方式对BoW做

Python实战:美女图片下载器,海量图片任你下载

Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习Python这门语言. 本文是在前一部分Python基础之上Python实战:Python爬虫学习教程,获取电影排行榜,再次升级的Python网页爬虫实战课程. 1.项目概述. 利用XPath和requests模块进行网页抓取与分析,达到网页图片下载的效果. 抓爬图片地址:http://www.2c

Python实战:Python爬虫学习教程,获取电影排行榜

Python应用现在如火如荼,应用范围很广.因其效率高开发迅速的优势,快速进入编程语言排行榜前几名.本系列文章致力于可以全面系统的介绍Python语言开发知识和相关知识总结.希望大家能够快速入门并学习Python这门语言. 本文是在前一部分Python基础之上程序员带你十天快速入门Python,玩转电脑软件开发(四),再次进行的Python爬虫实战课程. 正则表达式实例简单详解 正则表达式干什么用? 就是在字符串中提取我们需要的内容的. 记得哦,要先引用正则表达式模块的哦. re就是正则表达式相

zeromq 学习和python实战

参考文档: 官网 http://zeromq.org/ http://www.cnblogs.com/rainbowzc/p/3357594.html 原理解读 zeromq只是一层针对socket的封装,介于传输层和应用层之间,并不是单独的服务或者程序,仅仅是一套组件. zeromq使用c语言编写,相应速度非常快. 主要有以下几个部分: - 主线程:负责相应用户的请求,比如创建zmq等 - IO线程:主要负责网络IO的调度,每个IO线程会对应一个异步poll(如select,epoll等),使

Python实战之自己主动化评论

Python实战之自己主动化评论 玩csdn博客一个多月了,渐渐发现了一些有意思的事,常常会有人用相同的评论到处刷.不知道是为了加没什么用的积分,还是纯粹为了表达楼主好人.那么问题来了,这种无聊的事情当然最好能够自己主动化咯.自己也来试了一把,纯属娱乐. 登陆 要评论当然要能够先进行登陆,採用 requests 库进行处理,尝试是否能看到自己的消息列表: msg_url ="http://msg.csdn.net/" r = requests.get(msg_url, auth=('d

Python学习记录day3

Python学习记录 day3 今天是银角大王武sir讲课.先回顾了上节课所学,然后讲到了面向对象思想. set set是一个无序且不重复,可嵌套的元素集合 class set(object):     """     set() -> new empty set object     set(iterable) -> new set object     Build an unordered collection of unique elements.     

Python实战之KNN实现

Python实战之KNN实现 用Python来实现K近邻分类算法(KNN)已经是一个老生常谈的问题,网上也已经有诸多资料,不过这里我还是决定记录一下自己的学习心得. 1.配置numpy库 numpy库是Python用于矩阵运算的第三方库,大多数数学运算都会依赖这个库来进行,关于numpy库的配置参见:Python配置第三方库Numpy和matplotlib的曲折之路,配置完成后将numpy库整体导入到当前工程中. 2.准备训练样本 这里简单的构造四个点并配以对应标签作为KNN的训练样本: # =