栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python的学习

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python的学习

re模块

re表达式:import re

res= re.findall:findall通过正则表达式筛选出文本中所有符合条件的数据
res= re.findall('正则','待匹配的文本') #查找所有符合正则表达式的数据
res = re.findall('i','duidui  xixi')
print(res) # ['i', 'i', 'i', 'i']  #结果是列表
res = re.finditer:finditer与findall作用一致 只不过结果会被处理成迭代器对象 用于节省内存
 res = re.finditer('i','duidui  xixi')
 print(res)  #
for i in res:
print(i)
res = re.search: search通过正则表达式匹配到一个符合条件的内容就结束
res = re.search('i','duidui  xixi')   #通过正则表示式匹配到一个数据就结束
print(res)  #
res = re.match:match通过正则表达式从头开始匹配 如果头部已经不符合 那么后面不走了
res = re.match('i','duidui  xixi')  #通过正则表达式从头开始匹配,如果头部不符合,不在查找
 print(res) # None
re.compile:compile能够提前准备好正则 之后可以反复使用 减少代码冗余
obj = re.compile('i')#能够提前准备好正则。之后可以反复使用减少代码冗余
print(re.findall(obj,'wadafaiiehag')) # ['i', 'i']
print(re.findall(obj,'wadadaihfaiiehag'))# ['i', 'i', 'i']
print(re.findall(obj,'wadadwiiiaihfaiiehag'))#['i', 'i', 'i', 'i', 'i', 'i']
优先展示() (?:)

findall针对分组的正则表达式匹配到的结果 优先展示()
findall也能够取消分组优先展示 (?:)

别名(?P<>)
res = re.search('a(?Pb)(?Pc)','abcabcabcabc')
print(res.group())
print(res.group(1))
print(res.group('id'))
print(res.group('name'))
第三方模块的下载 1.第三方模块必须先下载才可以导入使用 2.python下载第三方模块需要借助于pip工具 3.下载命令
cmd:pip3.8 install 模块名
  pip3.8 install 模块名 -i 源地址

我们可以切换下载的地址(源地址):
清华大学 :https://pypi.tuna.tsinghua.edu.cn/simple/
阿里云:http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 :http://pypi.mirrors.ustc.edu.cn/simple/
华中科技大学:http://pypi.hustunique.com/
豆瓣源:http://pypi.douban.com/simple/
腾讯源:http://mirrors.cloud.tencent.com/pypi/simple
华为镜像源:https://repo.huaweicloud.com/repository/pypi/simple/

常见错误或者缺点 1.下载速度很慢
 pip工具默认是从国外的仓库地址下载模块 速度很慢
2.下载报错
1.pip工具版本过低 直接拷贝提示信息里面的更新命令即可
	python38 -m pip install --upgrade pip
2.网络波动 关键字是Read timed out
	只需要重新下载几次即可 或者切换一个网络稳定一点的
3.有些模块在下载使用之前需要提前配置指定的环境
	结合具体情况 百度搜索
3.模块也有版本
pip3.8 install 模块名==版本号
	pip3.8 install django==1.11.11
爬虫 import requests模块
import requests
# import openpyxl
import re

#1朝目标地址发送网络请求获取响应数据(相当于在浏览器地址栏中输入网址并回车)
res = requests.get('http://www.redbull.com.cn/about/branch')
# print(res.content)#获取bytes类型的数据
# print(res.text) #获取解码后的数据
# 为了避免每次执行程序都要发送网络请求  也可以提前保存页面数据到文件
with open(r'hn.html','wb')as f:
    f.write(res.content)
# 读取页面数据
with open(r'hn.html','r',encoding='utf8') as f:
    data = f.read()

#研究目标数据的特征。编写正则筛选
# res = re.findall('.*' , data )
# print(res)
# 1.获取所有的分公司名称
name_list = re.findall('(.*?)' , data )
# print(name_list)
# 2.获取所有的分公司地址
addr_list = re.findall("

(.*?)

", data) # print(addr_list) # 3.获取所有的分公司邮箱 email_list =re.findall("

(.*?)

" , data) # print(email_list) # 4.获取所有的分公司电话 phone_list =re.findall("

(.*?)

" ,data ) # print(phone_list) #按照位置一一整合 integrate = zip(name_list,addr_list,email_list,phone_list) # print(list(integrate)) # for i in integrate : # print(""" # 公司名称:%s # 公司地址:%s # 公司邮箱:%s # 公司电话:%s # """ % i)
openpyxl模块

主要用于操作excel表格 也是pandas底层操作表格的模块
在python中能够操作excel表格的模块有很多
openpyxl属于近几年比较流行的模块
openpyxl针对03版本之前的excel文件兼容性不好
xlwt、xlrd也可以操作excel表格
兼容所有版本的excel文件 但是使用方式没有openpyxl简单

1.excel版本问题
03版本之前 excel文件的后缀名 .xls
03版本之后 excel文件的后缀名 .xlsx
	如果是苹果电脑excel文件的后缀 .csv
2.下载模块
pip3.8 install openpyxl
openpyxl实操 1.创建excel文件 1. from openpyxl import Workbook # 导入模块 2.wb = Workbook() # 创建excel文件 3. ws= wb.create_sheet(‘’)创建表格 补充.

ws.title = ‘’ # 支持二次修改

4. ws.sheet_properties.tabColor = “1072BA” # 修改工作簿颜色 5.wb.save(r’xxx.xlsx’) # 保存文件 2.写入数据 第一种写入方式
ws['A1'] = ''
ws['D2'] = ''
第二种写入方式
ws.cell(row=3, column=2, value='')# 根据行列写入
第三种写入方式(批量写入)
ws.append(['username','password','age','gender','hobby'])
作业: 尝试将红牛分公司数据保存到excel表格中
import requests
import openpyxl
import re

#1朝目标地址发送网络请求获取响应数据(相当于在浏览器地址栏中输入网址并回车)
res = requests.get('http://www.redbull.com.cn/about/branch')
# print(res.content)#获取bytes类型的数据
# print(res.text) #获取解码后的数据
# 为了避免每次执行程序都要发送网络请求  也可以提前保存页面数据到文件
with open(r'hn.html','wb')as f:
    f.write(res.content)
# 读取页面数据
with open(r'hn.html','r',encoding='utf8') as f:
    data = f.read()
#研究目标数据的特征。编写正则筛选
# res = re.findall('.*' , data )
# print(res)
# 1.获取所有的分公司名称
name_list = re.findall('(.*?)' , data )
# print(name_list)
# 2.获取所有的分公司地址
addr_list = re.findall("

(.*?)

", data) # print(addr_list) # 3.获取所有的分公司邮箱 email_list =re.findall("

(.*?)

" , data) # print(email_list) # 4.获取所有的分公司电话 phone_list =re.findall("

(.*?)

" ,data ) # print(phone_list) #按照位置一一整合 integrate = zip(name_list,addr_list,email_list,phone_list) #打开文件 wb = openpyxl.Workbook() # #使用的工作对象创建一张表 sheet1 = wb.create_sheet() # # 在sheet1表中写入内容插入内容 sheet1.append(['公司名称', '公司地址', '公司邮箱', '公司电话', ]) #处理数据(展示,保存到excel) for i in integrate: sheet1.append(i) wb.save(r'红牛数据.xlsx')
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1021871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号