python自动化--模块操作之re、MySQL、Excel
一、python自有模块正则
import re # re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None
print(re.match("www","wwwwccc").group()) #在起始位置匹配
print(re.match("www","wcccwww")) #不在起始位置匹配,返回None # re.search扫描整个字符串并返回第一个成功的匹配
print(re.search("haha","woshihahanishishui").group()) # re.findall从左到右扫描字符串,按顺序返回匹配,如果无匹配结果则返回空列表
print(re.findall("\d","one1two2three3four4"))
print(re.findall("\d","onetwothreefour")) # sub用于替换字符串中的匹配项
print(re.sub("g..t","good","goot geet up"))
# split返回切割后的列表
print(re.split("\+","123+456*789+abcd"))

group及groups区别:

re.compile将正则字符串编译成正则表达式对象:

# ['AD123453', 'AC342123', 'AR343212']
# [A-Z]{}\d{} # ^(||||)\d{}
# ^[]\d{}
推荐一个正则表达式的小工具:https://pan.baidu.com/s/1EXrSF5pS8hJ7050BOOtL9w
二、python第三方模块操作MySQL
连接数据库:
import mysql.connector
config = {
"host":"127.0.0.1",
"user":"root",
"passwd":"vertrigo",
"port":,
"db":"test",
"charset":"utf8",
"buffered"='True'
} try:
db = mysql.connector.connect(**config)
except mysql.connector.Error as e:
print("连接数据库失败!",str(e))
插入数据:
cursor = db.cursor(buffered=True) #buffered=True会把结果集保存到本地并一次性返回,这样可以提高性能
try:
#第一种:直接字符串插入方式
# sql_insert1="insert into student (name, age) values ('xiao', 27)"
# cursor.execute(sql_insert1) #第二种:元组连接插入方式
sql_insert2="insert into student (name, age) values (%s, %s)"
#此处的%s为占位符,而不是格式化字符串,所以age用%s
# data=('xiaoqiang',)
# cursor.execute(sql_insert2,data)
data = [("xiao",),
("xian",),
("rourou",),
("juju",)]
cursor.executemany(sql_insert2,data) #如果表引擎为Innodb,执行完成后需执行commit进行事务提交
db.commit()
#cursor.execute('commit')
except mysql.connector.Error as e:
print('插入失败!', str(e))
finally:
cursor.close()
db.close()
删除数据:
cursor = db.cursor(buffered=True)
try:
sql_del = "delete from student where name=%s and age=%s"
data_del = [
("cui",),
("hao",)]
cursor.executemany(sql_del,data_del)
db.commit()
except mysql.connector.Error as e:
print("删除数据失败!",str(e))
finally:
cursor.close()
db.close()
修改数据:
cursor = db.cursor(buffered=True)
try:
sql_update = "update student set age = 28 where name='kai'"
cursor.execute(sql_update)
db.commit()
except mysql.connector.Error as e:
print('修改数据失败',str(e))
finally:
cursor.close()
db.close()
查询数据:
cursor = db.cursor(buffered=True)
try:
# sql_select1 = "select * from student where age>%s"
# cursor.execute(sql_select1,(,)) sql_select2 = "select * from student where age>%s"
cursor.execute(sql_select2,(,))
datas1 = cursor.fetchall() #如果在后加上[]代表是取第一条数据 cursor.execute(sql_select2,(,))
datas2 = cursor.fetchone()[] #如果在后加上[]代表是取第一个字段
datas3 = cursor.fetchmany() #返回5条数据 print(datas1)
print(datas2)
print(datas3)
except mysql.connector.Error as e:
print("查询数据失败!",str(e))
finally:
cursor.close()
db.close()
三、python第三方模块操作Excel
注意高能:openpyxl只能操作xlsx文件而不能操作xls文件!所以在创建的时候一定要新建.xlsx格式的Excel!!!
import openpyxl
#打开文件
path_file = "D:/PycharmProjects/open.xlsx"
wp = openpyxl.load_workbook(path_file) print("获取所有工作表名:",wp.get_sheet_names())
# sheet = wp.get_sheet_by_name("Sheet1") #获取指定的工作表sheet
# print("获取指定的工作表名:",sheet.title)
sheet2 = wp.get_active_sheet() #获取活动的工作表sheet,一般是当前打开的sheet页
print("获取活动的工作表名:",sheet2.title) # 操作单元格:数据的读取与写入
# 获取单元格数据
print(sheet2['A1'].value)
print(sheet2.cell(row=,column=).value) #获取第二行第一列的值 # 数据的写入
sheet2.cell(row=,column=).value = "工作总结"
sheet2['C3']='cs' print("最大列数",sheet2.max_column)
print("最大行数",sheet2.max_row) # wp.save('D:/PycharmProjects/open1.xlsx') #另存为
wp.save("open.xlsx") #保存,默认保存在当前目录下
wp.save(path_file) #覆盖保存
小练习:
1、Python里面match()和search()的区别?
python正则中的match是在字符串的起始位置进行匹配,如果起始位置匹配不成功就会报错。如下例子:
import re
print(re.match("www","wwccc").group())
python正则中的search是在字符串中匹配第一次匹配成功的字符串并返回。如下例子:
import re
print(re.search("ws","wwcccwss").group())
2、以<div><span>test</span></div>进行匹配
<.*>意思为:匹配以<为开始的所有的字符,遇到回车换行中断匹配
<.*>结果为:<div><span>test</span></div>
<.*?>意思为:匹配以<为开始的字符串,出现一次就返回
<.*?>结果为:
<div>
<span>
<span>
<div>
3、获取URL的后缀名
abc = ("http://www.baidu.cn/archive/6688431.html")
print(abc.split('.')[-1])
python自动化--模块操作之re、MySQL、Excel的更多相关文章
- Nginx Lua拓展模块操作Redis、Mysql
# Nginx的拓展模块 # ngx_lua模块 # 淘宝开发的ngx_lua模块通过lua解释器集成近Nginx,可以采用lua脚本实现业务逻辑,由于lua的紧凑.快速以及内建协程,所以在保证宝兵法 ...
- selenium+python自动化之操作浏览器
一.打开网站 1.第一步:从selenium里面导入webdriver模块 2.打开Firefox浏览器(Ie和Chrome对应下面的) 3.打开百度网址 二.设置休眠 1.由于打开百度网址后,页面加 ...
- Python教程:操作数据库,MySql的安装详解
各位志同道合的同仁请点击上方关注 本教程是基于Python语言的深入学习.本次主要介绍MySql数据库软件的安装.不限制语言语法,对MySql数据库安装有疑惑的各位同仁都可以查看一下. 如想查看学习P ...
- python自动化开发-[第十一天]-Mysql
今日概要: 1.初识mysql 2.MySQL的增删改查 3.主键.外键 4.组合和分组 一.数据库的由来 1.什么是数据库? 数据的仓库,在ATM,购物车中存储数据为目录,称为数据库 1.数据以表格 ...
- Python OS模块操作文件和目录
#-*-coding:utf-8-*- import os import shutil ###############OS模块############## #获得当前python脚本的工作目录 os. ...
- python pandas模块简单使用(读取excel为例)
第一步:模块安装 pip install pandas 第二步:使用(单个工作表为例) 说明:如果有多个工作表,那么只要指定sheetname=索引,(第一个工作表为0,第二个工作表为1,以此类推) ...
- Python 自动化paramiko操作linux使用shell命令,以及文件上传下载linux与windows之间的实现
# coding=utf8 import paramiko """ /* python -m pip install paramiko python version 3. ...
- Python configparser模块操作代码实例
1.生成配置文件 ''' 生成配置文件 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知 ...
- python——os模块操作文件
随机推荐
- react 服务器端渲染 ssr 中 localstorage/history/window is not defined 解决方案
1.原因 ssr 会在后端执行组件的 componentWillMount 以及在它这个生命周期之前的生命周期 也就是说 ssr 阶段是不会执行 componentDidMount 方法的 当你在 c ...
- ThinkPHP3.2 点击看不清刷新验证码
欢迎使用Markdown编辑器写博客 baidu了一下.发现没有可用的源码,自己想了想,以下的方法可行. <!DOCTYPE html> <html> <head> ...
- redhat and centos 系统经常使用命令
查看cpu信息: more /proc/cpuinfo |grep "model name" 通常是至强系统 查看内存信息: grep MemTotal / ...
- iOS音频播放 (二):AudioSession 转
原文出处 :http://msching.github.io/blog/2014/07/08/audio-in-ios-2/ 前言 本篇为<iOS音频播放>系列的第二篇. 在实施前一篇中所 ...
- 【每日算法】排序算法总结(复杂度&稳定性)
一.插入排序:稳定,时间复杂度O(n^2) 想象你在打扑克牌,一開始左手是空的,接着右手開始从桌上摸牌,并将其插入到左手的一把牌中的正确位置上.为了找到这个正确位置,我们须要从右到左将它与手中的牌比較 ...
- HDU 1231——最大连续子序列(DP)
最大连续子序列 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Su ...
- js的调用函数前先执行某语句问题
js的调用函数前先执行某语句问题 标签: web前端面试 2015-09-29 17:48 1455人阅读 评论(0) 收藏 举报 分类: js(5) 版权声明:本文为博主原创文章,未经博主允许不 ...
- SSH-struts2的异常处理
在学习j2se的时候学习过利用java的exception类去处理异常.在struts2框架中也提供了对于异常的处理.简单说就是当Action发生异常时.能够在struts2.xml文件里进行配置,将 ...
- [计算机故障]为什么我的手机SD卡一打开就是说“你的磁盘未格式化,现在需要格式化吗”?
现在随着智能手机的普及,越来越多的人使用到了手机SD卡.也有的是micro SD(更小一些). 最近一个朋友说,为什么我的手机SD卡插到手机里一打开就是说“你的磁盘未格式化,现在需要格式化吗?” 但是 ...
- 2016/2/19 css样式表 Cascading Style Sheet 叠层样式表 美化HTML网页
一.样式表 (一)样式表的分类 1.内联样式表 和HTML联合显示,控制精确,但是可重用性差,冗余较多. 例:<p style="font-size:14px;">内联 ...