Python让繁琐工作自动化(总结)

1.Python让繁琐工作自动化 关键点
第一部分
基础
Python基础 整型、浮点型和字符串数据类型
字符串连接和复制
在变量中保存值
整型int、浮点型float、字符串strs;
变量名:包含字母、数字、下划线,不能数字开头;
控制流 布尔值
比较操作符
布尔操作符
混合布尔和比较操作符
控制流的元素
程序执行
控制流语句
导入模块
用sys.exit()提前结束程序
boolean(布尔值)值:真True、假False;
比较操作符会比较两个值,然后返回一个布尔值;
布尔操作符and、or、not;
range(5,-1,-1)/543210;
函数 def语句和参数
返回值和return语句
None值
关键字参数和print()
局部和全局作用域
global语句
异常处理
一个函数中的局部变量完全与其他函数中的局部变量分隔开来
列表 列表数据类型
使用列表
增强的赋值操作
方法
类似列表的类型:字符串和元组
用下标取得列表中的单个值、负数下标、利用切片取得子列表、用led()取得列表的长度、用下标改变列表中的值、列表连接和列表复制、用del语句从列表中删除值;
列表用于循环、in和not in操作符、多重赋值技巧;
增强赋值:spam = spam + 1;
a.index('b')/返回b在列表a中的下标、a.append('b')/在列表a的末尾加入b、a.insert(1,'b')/在列表a中下标1的位置加入b、a.remove('b')/删除列表a中的b、a.sort()/列表a顺序排列;
字符串也是一种列表,yuanzu('hello',)/元组无法修改、tuple(list)/将列表转换为元组、list(tuple)/将元组转换为列表、a = copy.copy(b)/将列表b复制到列表a、a = copy.deepcopy(b)/b为嵌套列表
字典和结构化数据 字典数据类型
漂亮打印
使用数据结构对真实世界建模
dict={v=1,v=2}/v=2、keys()\values()\items()方法、a in spam=>a in spam.keys()、spam.get('a', 0)/获取字典spam中键a的值,如果不存在默认返回0、spam.setdefault('a', 0)/若字典spam中不存在键a,则新建并赋值0;
漂亮的打印:import pprint......pprint.pprint('str');
v.get(key,0)/返回字典V中键key的值,如果没有则默认为0
字符串操作 处理字符串
有用的字符串方法
口令保管箱
在Wiki标记中添加无序列表
双引号、转义字符\、原始字符串r、三重单引号多行字符串、三重双引号多行注释、字符串下标和切片、in和not in操作符;
upper()/全部大写、lower()/全部小写、isupper()/判断是否都是大写返回T或F、islower()/判断是否都是小写返回T或F、startswith('a')判断是否a开头、endswith('b')判断是否b结束、a.join([b])/将列表b根据a分割返回字符串、a.split('b')/将字符串a根据b分割返回列表、a.rjust(5,'-')/填充右对齐----a、b.ljust(5,'-')/填充左对齐5----、b.center(6,'-')/左右填充居中对齐---b--、a.strip()/删除a左右的空格、a.lstrip()/删除a左边的空格、a.rstrip()/删除a右边的空格、import pyperclip/调用模块,pyperclip.copy('a')/拷贝a,pyperclip.paste()/粘贴a;
import sys, sys.argv[]/返回包含命令行参数的列表,也就是命令行传递给程序的参数;
isalpha()返回T,如果字符串只包含字母,并且非空;
isalnum()返回T,如果字符串只包含字母和数字,并且非空;
isdecimal()返回T,如果字符串只包含数字字符,并且非空;
isspace()返回T,如果字符串只包含空格、制表符和换行,并且非空;
istitle()返回T,如果字符串仅包含以大写字母开头、后面都是小写字母的单词。
第二部分
自动化任务
模式匹配与
正则表达式
不用正侧表达式来查找文本模式
用正则表达式查找文本模式
用正则表达式匹配更多模式
贪心和非贪心匹配
findall()方法
字符分类
建立自己的字符分类
插入字符和美元字符
通配字符
不区分大小写的匹配
用sub()方法替换字符串
管理复杂的正则表达式
组合使用re.***
电话号码和Email地址提取程序
1.用import re导入正则表达式模块;
2.用re.compile()函数创建一个Regex对象(r'\d\d');
3.向Regex对象的search()方法传入想要查找的字符串。它返回一个Match对象;
4.调用Match对象的group()方法,返回实际匹配文本的字符串。
?匹配零次或一次前面的分组;
*匹配零次或多次前面的分组;
+匹配一次或多次前面的分组;
{n}匹配n次前面的分组、{n,}匹配n次或更多前面的分组、{,m}匹配零次到m次前面的分组、{n,m}匹配至少n次至多m次前面的分组、{n,m}?或*?或+?对前面的分组进行
非贪心匹配;
^spam字符串必须以spam开始、spam$字符串必须以spam结尾;
.匹配除换行以外的所有字符;
\d、\w、\s分别匹配数字、单词和空格;
\D、\W、\S分别匹配数字、单词和空格以外的所有字符;
[abc]匹配方括号内的任意字符abc、[^abc]匹配方括号中除了abc的任意字符;
re.compile('a',
re.DOTALL)/匹配所有字符、re.compile('a',re.I)/不区分大小写匹配、re.compile('a',re.VERBOSE)/忽略正则表达式中的空白符和注释;
strRegex.sub(r'\1***', 'string')/替换string第一个分组的字符串
读写文件 文件与文件路径
文件读写过程
用shelve模块保存变量
用pprint.pformat()函数保存变量
os.getcwd()/获取当前工作目录
os.chdir('c:\\windows')/移动当前工作目录到windows文件下
os.makedirs()/创建文件夹
os.path.abspath(path)/返回path所在的绝对路径
os.path.isabs(path)/判断path是否为绝对路径,返回T或F
os.path.relpath(path,start)/返回start到path的相对路径
os.path.basename(path)/返回path的文件名
os.path.dirname(path)/返回path的文件目录名称
os.path.split(path)/返回path的的文件名和文件目录名称(元组)
os.path.sep/路径分割符
os.path.split(os.path.sep)/将path路径按照路径分隔符分割,并返回一个列表
os.path.join(path,filename)/path+filename,拼接成完整路径
os.path.exists(path)/判断path是否存在,返回T或F
os.path.isfile(path)/判断path是否存在并且为文件,返回T或F
os.path.isdir(path)/判断path是否存在并且为文件夹,返回T或F
.\当前目录、..\上一层目录、
test = open('test.txt','r');test.close()\r只读、w覆盖写入、a末尾写入
shelve.key()、shelve.value()\用于存储python程序中的数据
组织文件 shutil模块
遍历目录树
用zipfile模块压缩文件
import shutil,os
shutil.copy(filename,path/file)/将filename复制到path路径下,或复制为file文件
shutil.move(finename,path/file)/将filename移动到path路径下,或覆盖file文件的内容
os.unlink(path)/删除path处的文件
os.rmdir(path)/删除path处的文件夹,文件夹必须为空
os.rmtree(path)/删除path处的文件夹及其包含的所有文件和文件夹
import send2trash
send2trash.send2trash(path)/将path处的文件删除至回收站
os.walk(path)/返回path路径下文件夹的名称、path路径下文件夹中子文件夹名称的列表、path路径下文件夹中文件名称的列表
import zipfile,os
filezip =
zipfile.ZipFile('file.zip')/获取file.zip压缩包的标识
filezip.
namelist()/返回file.zip压缩包内文件名的列表
fileinfo = filezip.
getinfo('spam.txt')/获取file.zip压缩包内文件的信息
fileinfo.
file_size/返回spam.txt文件的大小
fileinfo.
compress_size/返回spam.txt文件压缩后的大小
filezip.
extractall()/将file.zip压缩包解压缩至当前目录
newzip = zipfile.ZipFile('new.zip','w')/创建一个名为new.zip的压缩包,'a'模式将继续添加文件,而不会覆盖原来的文件
newzip.
write('spam.txt',compress_type=zipfile.ZIP_DEFLATED)/将文件spam.txt添加到new.zip压缩包内
newzip.close()
调试 抛出异常
取得反向跟踪的字符串
断言
日志
IDLE的调试器
 
从Web抓取信息 用requests模块从Web下载文件
将下载的文件保存到硬盘
HTML
用BeautifulSoup模块解析HTML
用selenium模块控制浏览器
import webbrowser
webbrowser.open('http://www.baidu.com')//在新的选项卡打开百度。
--------------------------------
import
requests
res = requests.get('http://www.baidu.com/1112.txt')//下载1112.txt文件,并返回一个Response对象。
res.status_code == requests.codes.ok//返回True,说明下载文件成功。
res.text//返回1112.txt内容的字符串。
playFile = open('rome.txt','
wb')//以“写二进制”模式打开/新建rome.txt文件。
for chunk in
res.iter_content(100000):
playFile.write(chunk)//逐条取出1112.txt文件中的内容,写入rome.txt文件中。
playFile.close()//关闭文件。
--------------------------------
import requests,
bs4;
exFile = open('1.html')//打开本地的1.HTML文件。
exFile = open('http://www.baidu.com/1.html')//打开1.html页面。
res.raise_for_status()//检测下载是否成功。
exText =
bs4.BeautifulSoup(exFile.text)//将1.html文件的text属性传递给exText变量。
exRead = bs4.BeautifulSoup(
exFile.read())//获取1.html页面中所有的HTML标签。
Read = exRead.
select('#author')//返回一个列表,其中包含了所有带有id="author"的元素。
Read[0].
getText()//返回列表中的第一个元素的文本。
span = exRead.select('span')[0]//寻找第一个匹配span的元素。
span.
get('id')//抓取第一个span元素中,id的值,id="author"。
--------------------------------
from selenium import webdriver
browser = webdriver.Firefox()
browser.get('http://baidu.com')
find_eleniumt_*//匹配查询的第一个元素
find_eleniumts_*//返回所有匹配元素的列表
处理Excel电子表格 xlrd模块
打开Excel文档
从文档中取得工作表
从表中取得单元格
列字母和数字之间的转换
从表中取得行和列
文档、工作表、单元格
写入Excel文档
创建并保存Excel文档
创建和删除工作表
将值写入单元格
更新工作表
设置单元格和字体风格
Font对象
公式
调整行和列
wb = xlrd.open_work(filename)//打开workbook获取excel文件对象;
wb.sheet_names()//获取所有表格的名称,返回列表;
wb.sheets()//获取所有表格,返回列表;
wb.sheet_by_index(sheetx)//获取索引为sheetx的表格;
wb.sheet_by_name(sheet_name)//获取名为sheet_name的表格;
wb.sheet_loaded(sheet_name|index)//根据表名或索引,判断sheet表格是否导入成功,返回T或F;
sheet.nrows//返回sheet表中的有效行数
sheet.row_values(rowx[start_colx=0, end_colx=None])//
处理PDF和
Word文档
PDF文档
从PDF提取文本
解密PDF
创建PDF
拷贝页面
旋转页面
叠加页面
加密PDF
Word文档
读取Word文档
从.docx文件中取得完整的文本
创建Word文档
写入Word文档
添加标题
添加换行符和换页符
添加图像
 
处理CSV文件和
JSON数据
   
保持时间、
计划任务和启动程序
   
发送电子邮件和短信    
操作图像    
用GUI自动化
控制键盘和鼠标
   
posted @ 2021-03-08 14:31  居家ZJ  阅读(529)  评论(0)    收藏  举报