当前位置: 首页 > ops >正文

python基础day05

1.datetime模块:

  • datetime模块可以更方便的显示日期并对日期进行运算。
类名功能描述
datetime.datetime表示日期时间的类
datetime.timedelta表示时间间隔的类
datetime.date表示日期的类
datetime.time表示时间的类
datetime.tzinfodatetime.tzinfo
  • datetime的代码示例:
from datetime import datetime
# 获取当前时间
dt=datetime.now()
print("当前的系统时间:",dt)                                  # 2025-06-04 13:24:40.043445# 获取datetime类型对象的年月日时分秒
dt2=datetime(2025,6,4,13,23)
print("年:",dt2.year,"月:",dt2.month,"日:",dt2.day)         # 年: 2025 月: 6 日: 4
print("时:",dt2.hour,"分:",dt2.minute,"秒:",dt2.second)     # 时: 13 分: 23 秒: 0# 比较两个datetime类型对象的大小
labor_day=datetime(2025,5,1,0,0,0)
nation_day=datetime(2025,10,1,0,0,0)
print("五一比十一早吗?",labor_day<nation_day)                 # True# datetime类型转换成字符串
now_dt=datetime.now()
now_dt_str=now_dt.strftime("%Y-%m-%d %H:%M:%S")
print(type(now_dt))                 # <class 'datetime.datetime'>
print(type(now_dt_str))             # <class 'str'># 字符串转换成datetime类型
str_dt="2025年10月1日 12点23分56秒"
dt3=datetime.strptime(str_dt,"%Y年%m月%d日 %H点%M分%S秒")
print(type(dt3))                    # <class 'datetime.datetime'>
  • timedelta的代码示例:
from datetime import datetime
from datetime import timedelta
# 计算两个datetime日期之间的天数
days=datetime(2025,10,1)-datetime(2025,5,1)
print(type(days),days)                 # <class 'datetime.timedelta'> 153 days, 0:00:00# 通过传入参数的方式创建一个timedelta对象
td1=timedelta(10)
td2=timedelta(10,11)
print(td1)                             # 10 days, 0:00:00
print(td2)                             # 10 days, 0:00:11

2.第三方模块的安装与卸载:

  • 简介:第三方模块由全球Python爱好者、程序员、各行各业的专家进行开发并进行维护。
  • 安装第三方模块:pip install 模块名称,如:pip install requests
  • 卸载第三方模块:pip uninstall 模块名称
  • 升级pip命令:python -m pip install --upgrade pip

3.第三方模块requests:

  • 简介:requests被称为requests库,是用于处理HTTP(Hypertext TransferProtocol超文本传输协议)请求的第三方库,该库在爬虫程序中应用非常广泛。
  • 使用步骤:使用requests库中的get()函数可以打开一个网络请求,并获取一个Response响应对象。响应结果中的字符串数据可以通过响应对象的text属性获取,响应结果中除了有字符串数据也有二进制数据,响应结果中的二进制数据可以通过响应对象的content属性获取。
  • 使用requests爬取景区天气预报:
# 爬取景区天气预报
import requests
import re
url="https://www.weather.com.cn/weather1d/101010100.shtml"
resp=requests.get(url)
resp.encoding="utf-8"city=re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>',resp.text)
weather=re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>',resp.text)
wd=re.findall('<span class="wd">(.*)</span>',resp.text)
zs=re.findall('<span class="zs">([\u4e00-\u9fa5]*)</span>',resp.text)ls=[]
for a,b,c,d in zip(city,weather,wd,zs):ls.append([a,b,c,d])for item in ls:print(item)# 结果为:
['景区', '天气', '气温', '旅游指数']
['三亚', '多云', '33/26℃', '较适宜']
['九寨沟', '多云', '24/12℃', '适宜']
['大理', '小雨转阵雨', '24/15℃', '适宜']
['张家界', '多云', '30/21℃', '适宜']
['桂林', '多云', '34/23℃', '较适宜']
['青岛', '晴', '30/19℃', '适宜']
  • 使用requests爬取百度的logo图片:
# 爬取百度的logo
import requests
url="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png"
resp=requests.get(url)
with open("logo.png","wb") as file:file.write(resp.content)

4.第三方模块openpyxl:

  • 简介:openpyxl模块是用于处理Microsoft Excel文件的第三方库,可以对Excel文件中的数据进行写入和读取。
函数/属性名称功能描述
load_workbook(filename)打开已存在的表格,结果为工作簿对象
workbook.sheetnames工作簿对象的sheetnames属性,用于获取所有工作表的名称,结果为列表类型
sheet.append(lst)向工作表中添加一行数据,新数据接在工作表已有数据的后面
workbook.save(excelname)保存工作簿
Workbook()创建新的工作簿对象
  • 将爬取的景区天气预报存储到excel中:
import weather                           # 自定义weather模块,用来获取和解析天气预报数据
import openpyxl
html=weather.get_html()                  # 发送请求,获得相应结果
lst=weather.parse_html(html)             # 解析数据workbook=openpyxl.Workbook()             # 创建一个新的工作簿
sheet=workbook.create_sheet("景区天气")  # 在Excel文件中创建工作表for item in lst:                        sheet.append(item)                   # 向工作表中添加数据workbook.save("景区天气.xlsx")           # 保存工作表
  • 从Excel文件中读取数据:
    
# 从Excel文件中读取数据:
import openpyxl
workbook=openpyxl.load_workbook("景区天气.xlsx")    # 打开工作薄
sheet=workbook["景区天气"]                          # 选择要操作的工作表
lst=[]                                             # 存储行数据
for row in sheet.rows:                             # 表格数据是二位列表,先遍历行,再遍历列sublst=[]                                      # 存储单元格数据for cell in row:sublst.append(cell.value)lst.append(sublst)for item in lst:print(item)

5.第三方模块pdfplumber:

  • 简介:pdfplumber可用于从PDF文件中读取内容
  • 读取pdf内容:
# 读取pdf内容
import pdfplumber
with pdfplumber.open("ChatGPT从入门到精通(1).pdf") as pdf:    # 打开pdf文件for i in pdf.pages:                                      # 遍历页print(i.extract_text())                              # extract_text()方法提取内容print(f"---------第{i.page_number}页")

6.第三方模块numpy:

  • 简介:是Python数据分析方向和其它库的依赖库,用于处理数组矩阵等数据
  • 图像的灰度处理:
import numpy as np
import matplotlib.pyplot as plt
# 读取图片
n1=plt.imread("cake.jpg")  # n1是三维数组,最高维度表示图像的高,次高维度表示图像的宽,最低维度表示[R,G,B]颜色
plt.imshow(n1)# 编写灰度公式
n2=np.array([0.299,0.587,0.114])
# 将数组n1(RGB)颜色值与数组n2(灰度公式固定值),进行点乘运算
x=np.dot(n1,n2)
# 传入数组,显示灰度
plt.imshow(x,cmap="gray")
# 显示图像
plt.show()

7.Pandas与Matplotlib:

  • Pandas是基于Numpy模块扩展的一个非常重要的数据分析模块,使用Pandas读取Excel数据更加的方便。
  • Matplotlib是用于数据可视化的模块,使用Matplotlib.pyplot可以非常方便的绘制饼图、柱形图、折线图等。
import pandas as pd
import matplotlib.pyplot as plt
# 读取Excel文件
df=pd.read_excel("JD手机销售数据.xlsx")
# 解决中文乱码问题
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置画布大小
plt.figure(figsize=[10,6])
labels=df["商品名称"]
y=df["北京出库销量"]# 绘制饼图
plt.pie(y,labels=labels,autopct='%1.1f%%',startangle=90)# 设置x,y轴刻度
plt.axis('equal')
plt.title("京东手机销售占比图")
# 显示饼图
plt.show()

8.第三方模块PyEcharts:

  • 简介:PyEcharts是由百度开源的数据可视化库,它对流行图的支持度比较高,它给用户提供了30多种图形,如柱形渐变图K线周期图等。
  • 中文官方文档:https://pyecharts.org/#/zh-cn/
  • 使用步骤:

       (1)导入pyecharts包
       (2)找到相应图形模板
       (3)准备相应数据
       (4)对图表进行个性化修饰

  • 示例代码:
from pyecharts import options as opts
from pyecharts.charts import Pie
lst=[["苹果",200],["华为",409],["oppo",234],["小米",210]]
c = (Pie().add("", lst).set_global_opts(title_opts=opts.TitleOpts(title="京东销售数据占比")).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")).render("phone.html")
)

9.第三方模块PIL:

  • 简介:是用于图像处理的第三方库,它支持图像存储、处理和显示等操作。
  • 安装:pip install pillow
  • 图像的颜色交换示例代码:
# 图像的颜色交换
from PIL import Image
# 加载图片
im=Image.open('cake.jpg')
# 提取RGB图像的颜色通道,返回结果是图像的副本
r,g,b=im.split()
# 合并通道
om=Image.merge('RGB',(r,b,g))
om.save("new_cake.jpg")

10.第三方模块jieba:

  • 简介:jieba是Python中用于对中文进行分词的模块,它可以将一段中文文本分隔成中文词组的序列。
  • 中文分词示例代码:
import jieba
# 读取文件
with open("华为笔记本.txt",'r',encoding='utf-8') as file:s=file.read()print(s)# 分词
lst=jieba.__lcut(s)# 去重操作
set1=set(lst)d={}
for item in set1:if len(item)>2:d[item]=0for item in lst:if item in d:d[item]=d.get(item)+1new_lst=[]
for item in d:new_lst.append([item,d[item]])# 列表排序
new_lst.sort(key=lambda x:x[1],reverse=True)
print(new_lst[0:11])

11.第三方模块PyInstaller:

  • 简介:第三方库Pyinstaller可以在Windows操作系统中将Python源文件打包成.exe的可执行文件。还可以在Linux和MacOS操作系统中对源文件进行打包操作。
  • 打包的语法结构:pyinstaller -F 源文件文件名
  • 注意事项:在进行文件打包时,需要打包的文件尽量不要有中文,而且需要打包的文件路径也尽量不要有中文,路径中包含中文有可能会导致打包失败。

12.文件:

  • 简介:存储在计算机的存储设备中的一组数据序列就是文件。
  • 文件分类:不同类型的文件通过后缀名进行区分。

       文本文件:由于编码格式的不同,所占磁盘空间的字节数不同。

       二进制文件:没有统一的编码,文件直接由0或1组成需要使用指定的软件才能打开。

  • 操作文件步骤:

       (1)打开文件:变量名=open(filename,mode,encoding)

       (2)操作文件:变量名.read()     变量名.write(s)

       (3)关闭文件:变量名.close()

  • 操作文件示例代码:
# 写入文件
def my_write():file=open("test.txt","w",encoding="utf-8")             # 打开(创建)文件file.write("伟大的中国梦")                               # 操作文件file.close()                                           # 关闭文件# 读取文件
def my_read():file=open("test.txt","r",encoding="utf-8")             # 打开(创建)文件s=file.read()                                          # 操作文件print(s)file.close()                                            # 关闭文件# 主程序运行
if __name__ == '__main__':# my_write()my_read()
  • 文件的状态和操作过程:

  • 文件的打开模式:
文件的打开模式模式说明
r以只读模式打开,文件指针在文件的开头,如果文件不存在,程序抛异常
rb以只读模式打开二进制文件,如图片文件
w覆盖写模式,文件不存在创建,文件存在则内容覆盖
wb覆盖写模式写入二进制数据,文件不存在则创建,文件存在则覆盖
a追加写模式,文件不存在创建,文件存在,则在文件最后追加内容
+与w/r/a等一同使用,在原功能的基础上增加同时读写功能
  • 文件读写方法:
读写方法描述说明
file.read(size)从文件中读取size个字符或字节,如果没有给定参数,则读取文件中的全部内容
file.readline(size)读取文件中的一行数据,如果给定参数,则为读取这一行中的size个字符或字节
file.readlines()从文件中读取所有内容,结果为列表类型
file.write(s)将字符串s写入文件
file.writelines(lst)将内容全部为字符串的列表lst写入文件
file.seek(offset)改变当前文件操作指针的位置,英文占一个字节,中文gbk编码占两个字节,utf-8编码占三个字节
  • 文件复制:本质就是边读边写操作,注意先打开的文件后关,后打开的文件先关
def copy(src,new_path):file1=open(src,"rb")       # 打开原文件file2=open(new_path,"wb")  # 创建新文件s=file1.read()             # 读取原文件file2.write(s)             # 向新文件中写入内容file2.close()              # 后打开的先关file1.close()              # 先打开的后关
if __name__ == '__main__':copy("cake.jpg","new_cake.jpg")
  • with语句:

       简介:又称上下文管理器,在处理文件时,无论是否产生异常都能保证with语句执行完毕后关闭已经打开的文件,这个过程是自动的无需手动操作。

      语法结构: with open(...) as file:

                              pass

      示例代码:

def write_fun():with open("a.txt","w",encoding="utf-8") as file:file.write("北京欢迎你")def read_fun():with open("a.txt","r",encoding="utf-8") as file:print(file.read())def copy_fun(src_path,target_path):with open(src_path,"r",encoding="utf-8") as file:with open(target_path,"w",encoding="utf-8") as file2:file2.write(file.read())if __name__ == '__main__':write_fun()read_fun()copy_fun("a.txt","b.txt")

13.数据的组织维度及存储:

  • 数据的组织维度:也称为数据的组织方式或存储方式,在Python中常用的数据组织方式可分为一维数据、二维数据和高维数据。
  • 一维数据:通常采用线性方式组织数据,一般使用Python中的列表、元组或者集合进行存储数据。
  • 二维数据:二维数据也称表格数据由行和列组成,类似于Excel表格,在Python中使用二维列表进行存储。
  • 高维数据:高级数据则是使用Key-Value方式进行组织数据在Python中使用字典进行存储数据。在Python中内置的json模块专门用于处理JSON(JavaScriptObject Notation)格式的数据。
  • json模块的常用函数:
函数名称描述说明
json.dumps(obj)将Python数据类型转成JSON格式过程,编码过程
json.loads(s)将JSON格式字符串转成Python数据类型,解码过程
json.dump(obj,file)与dumps()功能相同,将转换结果存储到文件file中
json.load(file)与loads()功能相同,从文件file中读入数据
  • 高维数据存储代码示例:
import json
lst=[{"name":"张三","age":13,"score":99},{"name":"李四","age":16,"score":90},{"name":"王五","age":21,"score":80},
]
s=json.dumps(lst,ensure_ascii=False,indent=4)   # ensure_ascii正常显示中文 indent增加数据的缩进lst2=json.loads(s)

http://www.xdnf.cn/news/12249.html

相关文章:

  • 【Hot 100】322. 零钱兑换
  • ABB 1MRK002247-Apr04保护继电器模块技术分析
  • 示波器电流探头校准规范指南
  • 操作系统中的设备管理,Linux下的I/O
  • mime嗅探的默认行为及Markdown文件响应格式
  • 小白升级的路-电子电路
  • Openldap 数据迁移后用户条目中 memberOf 反向属性丢失
  • 物料转运人形机器人适合应用于那些行业?解锁千行百业的智慧物流革命
  • 【Fiddler抓取手机数据包】
  • BT Panel密码修改
  • C语言| 指针引用数组元素
  • Windows上共享文件夹给Linux使用
  • 技术文档写作全攻略
  • 仿真每日一练 | Workbench手机后盖壳体类静力学分析
  • ROUGE评测指标深度解析
  • AD-线宽规则和过孔规则不生效
  • 在MATLAB中使用自定义的ROS2消息
  • MySQL中关于事务和锁的常见执行命令整理包括版本区别
  • Git Patch 使用详解:生成、应用与多提交合并导出
  • 炉石传说 第八次CCF-CSP计算机软件能力认证
  • 【大模型推理加速】MOE加速比与batchsize 关系
  • 某药监局药品详情sign值逆向
  • 第12期_网站搭建_几时网络验证1.3二改源码包2024 软件卡密系统 虚拟主机搭建笔记
  • linux下覆盖率测试总结
  • SQL Server相关的sql语句
  • React Hooks 指南:何时使用 useEffect ?
  • 鸿蒙APP测试实战:从HDC命令到专项测试
  • 【连接器专题】案例:FPC焊接金手指顶层和底层开窗/焊盘为什么要错位?
  • 《计算机是怎么跑起来的》第二章读后感
  • LeetCode 70 爬楼梯(Java)