博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python自动化七--操作mongodb,模块导入,接口开发,读取excel,修改excel
阅读量:4697 次
发布时间:2019-06-09

本文共 4299 字,大约阅读时间需要 14 分钟。

读取excel
import xlrd #只能读book = xlrd.open_workbook('nhy.xls')print(book.nsheets)#获取到excel里面总共有多少个sheet页sheet = book.sheet_by_index(0)#book.sheet_by_name('sheet1')## print(sheet.cell(0,0).value)  #指定行和列,获取某个单元格里面的内容# print(sheet.cell(1,0).value)print(sheet.row_values(0))#获取某一行的数据print(sheet.row_values(1))#获取某一行的数据print(sheet.nrows)#这个就是excel里面总共有多少行print(sheet.col_values(0))#某一列的数据print(sheet.col_values(1))#某一列的数据print(sheet.ncols)#总共有多少列
修改excel
import xlrdfrom xlutils import copybook1 = xlrd.open_workbook('nhy.xls')#打开原来的excelnew_book = copy.copy(book1)#拷贝一个新的excelsheet = new_book.get_sheet(0)#获取第一个sheet页sheet.write(1,3,'18')sheet.write(1,1,'wYh')new_book.save('nhy.xls')
操作mongo数据库
import pymongoclient = pymongo.MongoClient(host='IP地址',port=端口号)db = client['szp']#选择数据库,如果这个数据库不存的话,会帮你创建collection = db['stu_info']#选择一个集合,就相当于mysql里面表# db['stu_info'].insert({'url':'http://www.baidu.com','title':'baidu.com','addr':'西二旗'})# for d in db['stu_info'].find({'title':'baidu.com'}):#   print(d)collection.delete_one({'title':'baidu.com'})#如果有多条的话,只会帮你删掉1条# collection.delete_many({'title':'baidu.com'})#会删除多条# print(list(collection.find()))collection.update({'jd':'www.jd.com'},{'jd':'www.jd.com','addr':'亦庄'})
操作mysql,将数据库中的内容写入excel中
import pymysql,xlwtcoon=pymysql.connect(host='IP',user='用户名',password='123456',db='jxz',port=3306,charset='utf8')#cur=coon.cursor(cursor=pymysql.cursors.DictCursor)#指定游标类型cur=coon.cursor() #指定游标类型cur.execute('select * from YUZE_userinfo;')fileds=[fileds[0] for filed in cur.description]# 获取表头信息data=list(cur.fetchall())data.insert(0,fileds) #将表头加入到数据中book=xlwt.Workbook()sheet=book.add_sheet('sheet1')#方法一line=0for d in data:  col=0  for col_data in d:      sheet.write(line,col,col_data)      col+=1  line+=1  #方法二for index,line_data in enumerate(data):    for index2,col_data in enumerate(line_data):       sheet.write(index,index2,col_data) book.save('user.xls')cur.close()
sys模块
import syscommand=sys.argv #运行python文件时的参数if len(command)>1:  excel=command[1]  print(’用例已经运行完成',excel)else:  print('运行这个python文件时,需要传入一个用例名称’)

导入模块的顺序

1、当前目录下找这个python文件
2、去python的环境变量里面找这个python文件

导入模块的实质

把这个模块的代码,从头到尾执行一次

接口开发
import flask,pymysqlimport hashlibimport jsonserver = flask.Flask(__name__) #把当前这个python文件当做一个服务def my_db(sql,port=3306,charset='utf8'):    ip, user, passwd, db = 'IP','jxz','123456','jxz'    coon = pymysql.connect(host=ip,user=user,                    password=passwd,db=db,                    port=port,charset=charset,autocommit=True)    cur = coon.cursor()    sql=sql.strip()    cur.execute(sql)    sql_start = sql[:6].lower()#取sql的开头,转成小写    if sql_start.startswith('select') or sql_start.startswith('show'):        data = cur.fetchall()    else:        data = 'ok'    cur.close()    coon.close()    return datadef my_md5(s):    m = hashlib.md5(s.encode())    return m.hexdigest()@server.route('/login',methods=['get','post']) #装饰器def login():    username = flask.request.values.get('username')#是从客户端发过来的数据    pwd = flask.request.values.get('password')    #flask.request.cookies.get('xxx')#获取cookie    #flask.request.headers.get('xxxx')#获取headers    # json_data = flask.request.json.get('username') #这个获取入参是json类型的    if username=='nhy' and pwd=='123456':        res  = {'code':1000,'msg':'登录成功','sign':'sdfsdf23vsrqsdf'}    else:        res = {'code':2000,'msg':'账号/密码错误'}    return json.dumps(res,ensure_ascii=False)    @server.route('/register',methods=['post'])#装饰器def reg():    username = flask.request.values.get("username")    passwd = flask.request.values.get("passwd")    cpasswd = flask.request.values.get("cpasswd")    if username and passwd and cpasswd:        sql1 = 'select * from nhy where name="%s";'%username        sql_res = my_db(sql1)        if sql_res:            res = {'code':2001,'msg':'该用户已经被注册'}        else:            if passwd==cpasswd:#                md5_pwd = my_md5(passwd)                sql2 = 'insert into nhy (name,pwd) value ("%s","%s");'%(username,md5_pwd)                my_db(sql2)                res = {'code':1000,'msg':'注册成功'}            else:                res = {'code':2003,'msg':'两次输入的密码不一致'}    else:        res = {'code':2002,'msg':'必填参数未填,请查看接口文档!'}    return json.dumps(res,ensure_ascii=False)    server.run(port=8989,debug=True)#启动服务

转载于:https://www.cnblogs.com/tudouxifan/p/9325833.html

你可能感兴趣的文章
(Builder)创建者模式
查看>>
HIve:beeline终端上在输错hive语句时,无论 Backspace还是delete 都删除不掉错误的语句,没有办法退格...
查看>>
Android 微光闪烁效果之更强Shimmer-android
查看>>
Open Graphics Library初步_搭建环境_GLUT
查看>>
MySQL5.7版本安装
查看>>
转 android有用代码片段
查看>>
LeetCode-Recover Binary Search Tree
查看>>
Socket
查看>>
opencv 在工业中的应用:blob分析
查看>>
JavaScript Cookie
查看>>
JAVA中protected的作用
查看>>
selenium python 启动Chrome
查看>>
MySQL优化索引及优化汉字模糊查询语句
查看>>
安装cocoaPod 的问题
查看>>
vs Obsolete标识符
查看>>
IOS 深拷贝和浅拷贝应用
查看>>
深度学习优化方法
查看>>
《剑指offer》第二十八题(对称的二叉树)
查看>>
解决编译错误: 非法字符: '\ufeff' 解决方案|错误: 需要class, interface或enum
查看>>
别说我不懂排序!几种常见排序算法(一)
查看>>