【测试开发学习历程】python常用的模块(中)

目录

5 time模块

5.1、Python中的四种格式的时间:

5.2、time模块中的常用函数

6 I/O流操作

6.1 创建文件

6.2 读取一个文件存入到另外一个文件

6.3 with open as 结构

6.4  open和with open as的区别

7 Excel的操作模块-openpyxl

7.1、新建Excel文件进行读写操作

7.2、打开已有的Excel文件进行读写操作

7.3、打开txt文件,读取内容写入excel(批量写入)

7.4、从文件excel中读取数据


5 time模块

5.1、Python中的四种格式的时间:

  • 纪元时间epoch格式时间:以秒为单位进行换算所得到的的时间,指的是从计算机时间元年1970.1.1到现在所创建的时间之间的数转换成秒单位的浮点数,比如1630120707.7790058

  • 时间元组struct-time时间:比如time.struct_time(tm_year=2021, tm_mon=8, tm_mday=28, tm_hour=3, tm_min=18, tm_sec=58, tm_wday=5, tm_yday=240, tm_isdst=0)

  • python定义的英文格式显示时间:比如Wed Oct 16 09:49:02 2019

  • 自定义格式时间:按自己需要的格式来表示,比如2021/8/20 11:20:20

5.2、time模块中的常用函数

  • 获取系统的当前时间:

    • time.time():返回当前时间,显示epoch格式时间

    • time.localtime():返回当前时间,显示struct-time时间

    • time.asctime():返回当前时间,显式英语格式

    • time.gmtime():返回当前的格林威治时间

  • 时间格式的转换:

    • time.gmtime():传入一个epoch时间,转成时间元组格式,如果不传入参数则表示转换当前时间;

    • time.mktime():作用和time.gmtime()相反,以元组的形式传值,必须为9个值;

    • time.strftime():传入一个自定义的格式和struct-time格式的时间,把struct-time格式的时间转成自定义的格式;

      %y 两位数的年份表示(00-99)
      %Y 四位数的年份表示(000-9999)
      %m 月份(01-12)
      %d 月内中的一天(0-31)
      %H 24小时制小时数(0-23)
      %I 12小时制小时数(0-12)
      %M 分钟数(0-59)
      %S 秒(00-59)
      %a 本地简化星期名称
      %A 本地完整星期名称
      %b 本地简化的月份名称
      %B 本地完整的月份名称
      %c 本地相应的日期表示和时间表示(e.g Thu Dec 10 09:54:27 2020)
      %j 年内的一天(001-366)
      %p 本地A.M.或P.M.的等价符
      %U 一年中的星期数(00-53)星期天为星期的开始
      %w 星期(0-6),星期天为星期的开始
      %W 一年中的星期数(00-53)星期一为星期的开始
      %x 本地相应的日期表示(e.g 12/10/20)
      %X 本地相应的时间表示(e.g 09:58:15)
      %Z 当前时区的名称(e.g 中国标准时间)
      %% %号本身
  • time.sleep(x):表示程序执行到这一行就休眠x秒,经常用在自动化代码中实现等待的效果。

print(time.strftime("%y年%m月%d日 %H:%M:%S", time.gmtime(os.path.getatime(r"D:\Document"))))

I/O流操作

文件I/O流指输入输出操作(input、output)

  • open函数

  • 打开文件的模式(mode的值,默认为r)

    • r: 以只读方式打开文件

    • r+: 打开一个文件用于读写(会在已有的内容前且会覆盖原有的前面的内容添加数据)

    • w: 打开一个文件只用于写入(不存在则创建,存在则完全覆盖内容)

    • w+: 打开一个文件用于读写(覆盖已有的数据)

    • a:打开一个文件用于追加(不存在则创建,存在就在文件最后追加内容)

    • a+:打开一个文件用于读写(追加数据)

6.1 创建文件

# mode为“w”时,如果有这个文件,就直接打开,如果没有则新建一个再打开
file_1 = open('d:xiao.txt',mode='w')
# 操作完成后关闭文件
file_1.close()

6.2 读取一个文件存入到另外一个文件

# 读取文件内容,写入另一个文件
# 打开文件
f1 = open(r"d:\test.txt")
# 读取内容
data = f1.read()
#创建文件,mode=a或w,如果文件不存在就会先创建再写入a表示追加,w表示覆盖
f2 = open(r"d:\test2.txt",mode="a")
#写入内容
f2.write(data)
# 关闭文件
f1.close
f2.close

6.3 with open as 结构

我们都知道打开文件方式使用open函数,再对文件操作完成后需要调用close方法来关闭文件。有时候回存在打开和关闭异常,为了避免异常的存在我们一般使用with open("文件路径", mode="模式") as fp方式来打开文件。

# 无论中间代码执行是否错误,最后都会关闭文件
with open(r"d:\test.txt",mode='r') as f1:print(f1.read())

6.4  openwith open as的区别

  • open()函数:这样直接打开文件,如果出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行,导致文件无法关闭。

  • 用with语句的好处,就是到达语句末尾时,即便出现异常也会自动关闭文件

Excel的操作模块-openpyxl

前面讲的模块都属于Python内置的模块,使用前不需要安装,直接导入即可;这里的openpyxl属于第三方模块,在使用前必须先安装。

openpyxl是读写excel文件的第三方库

安装方式:

  • pip install openpyxl

  • pycharm中安装

在使用openpyxl模块之前,需要先搞清楚以下两个概念:

  • workbook:工作簿,即整个excel文件

  • worksheet:工作表,一个excel文件中可以有多个工作表

7.1、新建Excel文件进行读写操作

#导入Workbook类
from openpyxl import Workbook
#实例化Workbook对象,相当于新建了一个excel文件
wb = Workbook()
#获取活动的工作表
ws = wb.active
#指定单元格写入内容
ws["A6"] = "蓉华教育"
#列表中写入一行数据
list1 = [1,3,45,6]
ws.append(list1)
#列表中的嵌套列表中的数据导入
data = [[11,22,33],[44,55,66],[77,88]]
for i in data:ws.append(i)
#新建一个名叫“名单”的sheet页,并且把它放到第一个位置
ws_2 = wb.create_sheet("名单",0)    
#操作名单的sheet页面
#保存文件
wb.save(r"c:\test01.xlsx")

7.2、打开已有的Excel文件进行读写操作

### 找指定单元格的数据
import openpyxl
# 打开文件
wb = openpyxl.load_workbook(r"test01.xlsx")
# 选择sheet页
ws = wb["Sheet"] # 新方法,和下面老方法一样
# ws=wb.get_sheet_by_name("Sheet") # 老方法,逐步要淘汰了
#获取单元格对象
cell = ws["A3"]
# 打印单个单元格的列,行,值
print(cell.column,cell.row,cell.value)
# 打印单元格的坐标和值
print(cell.coordinate,cell.value)
#获取excel列的数量
print(ws.max_column)
#获取行列的数量
print(ws.max_row)

7.3、打开txt文件,读取内容写入excel(批量写入)

eval()函数使用实例:

字符串转换成其他数据类型:"[]"转换出来列表,如果"()"转换出来为元组,如果为“{}”转换出来为字典

a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
b = eval(a)
print(b)
输出为:[[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
​
type(b)
输出为:list
​
a = "{1: 'a', 2: 'b'}"
b = eval(a)
print(b)
输出为:{1: 'a', 2: 'b'}
​
type(b)
输出为:dict
​
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
b = eval(a)
print(b)
​
输出为:([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))
#打开文件
with open(r"d:\list1.txt") as fi:#读取文件内容data = fi.read()#将字符串转换为列表list01 = eval(data)for i in list01:ws.append(i)wb.save(r"d:\test02.xlsx")

7.4、从文件excel中读取数据

### 找指定单元格的数据
import openpyxl
# 打开文件
wb = openpyxl.load_workbook(r"d:\test02.xlsx")
# 选择sheet页
ws = wb["信息"]
li = ws["a3"]
# 打印单个单元格的列,行,值
print(li.column,li.row,li.value)
# 打印单元格的坐标和值
print(li.coordinate,li.value)
### 批量读取excel中的数据
ws = wb["信息"]
#第一个for循环读取的为一行的数据
for i in ws:# 第二个for循环读取的为单个for cell in i:print(li1.coordinate,li1.value)
# 读取excel中的文件并以列表格式展示
import openpyxl
# 打开文件
wb = openpyxl.load_workbook(r"d:\test02.xlsx")
​
ws = wb["信息"]
# 取出来的数据用[[],[],[]]格式展示
all_list =[]
#第一个for循环读取的为一行的数据
for i in ws:list1 = []# 第二个for循环读取的为单个for j in i:j.append(li1.value)all_list.append(list1)
# 打印不要表头数据
print(all_list[1::])

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/819229.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

读天才与算法:人脑与AI的数学思维笔记01_洛夫莱斯测试

1. 创造力 1.1. 创造力是一种原动力,它驱使人们产生新的、令人惊讶的、有价值的想法,并积极地将这些想法付诸实践 1.2. 创造出在表面上看似新的东西相对容易 1.3. 在遇到偶然间的创造性行为时,都会表现得异…

Vitis HLS 学习笔记--ap_int.h / ap_fixed.h(2)-深度探究

目录 1. 前文回顾 1.1 简单背后的复杂 1.2 复杂性的来源 2. 关键代码 2.1 功能概述 2.2 关系梳理 2.3 理解构造函数二 2.4 理解HLS_CONSTEXPR 2.5 理解const volatile 3. 探究ap_int<8> c&#xff1b;经历了什么 4. 在调试中查看 1. 前文回顾 在《Vitis HLS…

使用 npm 工具高效更新项目依赖包

团队内部会用工具定时检查包的最新版本并通知&#xff0c;以便我们及时跟进社区进展&#xff0c;避免和技术栈出现版本脱节导致无法使用最新特性和优化内容 这里只说明手动查看和更新包的主要几个命令。 npm outdated&#xff1a;检查项目中过时的依赖包及其最新版本。 npm i…

基于Canvas实现的简历编辑器

基于Canvas实现的简历编辑器 大概一个月前&#xff0c;我发现社区老是给我推荐Canvas相关的内容&#xff0c;比如很多 小游戏、流程图编辑器、图片编辑器 等等各种各样的项目&#xff0c;不知道是不是因为我某一天点击了相关内容触发了推荐机制&#xff0c;还是因为现在Canvas…

计算机网络 Cisco路由器基本配置

一、实验内容 1、按照下表配置好PC机IP地址和路由器端口IP地址 2、配置好路由器特权密文密码“abcd&#xff0b;两位班内序号”和远程登录密码“star” 3、验证测试 a.验证各个接口的IP地址是否正确配置和开启 b.PC1 和 PC2 互ping c.验证PC1通过远程登陆到路由器上&#…

【深度学习】深度学习md笔记总结第5篇:神经网络与tf.keras,学习目标【附代码文档】

深度学习笔记完整教程&#xff08;附代码资料&#xff09;主要内容讲述&#xff1a;深度学习课程&#xff0c;深度学习介绍要求,目标,学习目标,1.1.1 区别,学习目标,学习目标。TensorFlow介绍&#xff0c;2.4 张量学习目标,2.4.1 张量(Tensor),2.4.2 创建张量的指令,2.4.3 张量…

AI - 提示词意外收获 (5)

提示词&#xff1a; A soft pink rose with opalescent leaves, located in a surreal desert under the light of a binary star system, The dual shadows and contrasting lights create a dreamlike quality, emphasizing the roses unique beauty,翻译: 一种柔软的粉红…

【位运算 贪心】2835. 使子序列的和等于目标的最少操作次数

算法可以发掘本质&#xff0c;如&#xff1a; 一&#xff0c;若干师傅和徒弟互有好感&#xff0c;有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二&#xff0c;有无限多1X2和2X1的骨牌&#xff0c;某个棋盘若干格子坏了&#xff0c;如何在没有坏…

数字乡村创新实践推动农业现代化发展:科技赋能农业产业升级、提升农民收入水平与乡村治理效能

随着信息技术的迅猛发展和数字化转型的深入推进&#xff0c;数字乡村创新实践已成为推动农业现代化发展的重要引擎。数字技术的广泛应用不仅提升了农业生产的智能化水平&#xff0c;也带动了农民收入的增加和乡村治理的现代化。本文旨在探讨数字乡村创新实践如何科技赋能农业产…

2016NOIP普及组真题 4. 魔法阵

线上OJ&#xff1a; 一本通&#xff1a;http://ybt.ssoier.cn:8088/problem_show.php?pid1976 本题作为第四题&#xff0c;想拿满分有难度。但是暴力拿些分还是做得到的。 满分需要用 前缀和 来化简for循环。 核心语句&#xff1a; $ x_a < x_b < x_c < x_d $ ① $ …

vue webpack打包配置生成的源映射文件不包含源代码内容、加密混淆压缩

前言&#xff1a;此案例使用的是vue-cli5 一、webpack源码泄露造成的安全问题 我们在打包后部署到服务器上时&#xff0c;能直接在webpack文件下看到我们项目源码&#xff0c;代码检测出来是不安全的。如下两种配置解决方案&#xff1a; 1、直接在项目的vue.config.js文件中加…

Android 使用ping命令判断当前网络状态

一. 介绍 ping命令是用来测试和诊断网络连接问题的基本命令&#xff0c;当然我们的终端设备&#xff08;手机/平板/车机&#xff09;都可以用这个命令来判断当前网络是否有流量的状态&#xff0c;本篇文章主要介绍Linux的ping命令&#xff0c;因为Android系统也是使用了Linux内…

OpenAI官宣位于东京的首个亚洲办公室,并将发布专为日语优化的GPT-4定制模型!

大家好&#xff0c;我是木易&#xff0c;一个持续关注AI领域的互联网技术产品经理&#xff0c;国内Top2本科&#xff0c;美国Top10 CS研究生&#xff0c;MBA。我坚信AI是普通人变强的“外挂”&#xff0c;所以创建了“AI信息Gap”这个公众号&#xff0c;专注于分享AI全维度知识…

科技云报道:AI大模型疯长,存储扛住了吗?

科技云报道原创。 AI大模型正在倒逼数字基础设施产业加速升级。 过去一年半&#xff0c;AI大模型标志性的应用相继出现&#xff0c;从ChatGPT到Sora一次次刷新人们的认知。震撼的背后&#xff0c;是大模型参数指数级的增长。 这种数据暴涨的压力&#xff0c;快速传导到了大模…

Unity 3D定点数物理引擎实战系列:BEPU物理引擎碰撞计算与碰撞规则的架构与设计

前面我们讲解了如何监听物理引擎的碰撞事件, 在物理引擎内核中如何架构与设计碰撞规则,使得物理Entity与周围的物理环境产生碰撞时&#xff0c;如何灵活的控制物理碰撞&#xff0c;本节給大家详细的讲解BEPUphysicsint 物理引擎内部是如何管理与控制碰撞规则的。本文主要讲解3个…

HTML的超链接

前言&#xff1a; 如图&#xff0c;我们在浏览网页时经常可以看到这样的字体&#xff08;点击便跳转到了别的地方了&#xff09;&#xff0c;今日就和各位一起学习一下超链接的相关知识。 相关知识1&#xff1a; 超链接的标签为&#xff1a;a ~使用格式为&#xff1a; <a h…

node.js服务器静态资源处理

前言&#xff1a;node.js服务器动态资源处理见 http://t.csdnimg.cn/9D8WN 一、什么是node.js服务器静态资源&#xff1f; 静态资源服务器指的是不会被服务器的动态运行所改变或者生成的文件. 它最初在服务器运行之前是什么样子, 到服务器结束运行时, 它还是那个样子. 比如平…

单元测试四大过程

单元测试四大过程&#xff08;蓝桥课学习笔记&#xff09; 单元测试过程 单元测试是软件测试过程中的一个关键环节&#xff0c;它与集成测试、系统测试一样&#xff0c;分为测试策划、测试设计、测试执行和测试总结几个阶段。 单元测试过程中每个阶段需要完成的主要工作如下&…

数据结构排序算法

排序也称排序算法(SortAlgorithm)&#xff0c;排序是将一组数据&#xff0c;依指定的顺序进行排列的过程。 分类 内部排序【使用内存】 指将需要处理的所有数据都加载到内部存储器中进行排序插入排序 直接插入排序希尔排序 选择排序 简单选择排序堆排序 交换排序 冒泡排序快速…

用html写文本变形动画

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>文本变形动画</title><link rel"stylesheet" href"./style.css"> </head> <body> <!-- 两个文本部分…