【测试开发学习历程】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::])

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

11.范式与反范式设计

范式 1.问题 MySQL的库表设计,在很多时候我们都是率性而为,往往在前期的设计中考虑不全面,同时对于库表结构的划分也并不明确,所以很多时候在开发过程中,代码敲着敲着会去重构某张表结构,甚至大面积重构多…

bestvike 资料 --Spring Boot 2.5.0

Spring Boot 2.5.0 SSM环境搭建 springspringmvcmybatisspring springmvc mybatis # 项目 - 需求分析 概要设计(库表设计) 详细设计(验证库表正确性) 编码(环境搭建业务代码) 测试 部署上线# 员工添加 查询所有功能 SSM - 库表 库: ssm 数据库:mysql 表: id na…

spring-cloud微服务gateway

核心部分:routes(路由), predicates(断言),filters(过滤器) id:可以理解为是这组配置的一个id值,请保证他的唯一的,可以设置为和服务名一致 uri:可以理解为是通过条件匹配之后需要路由到&…

RabbbitMQ基本使用及其五种工作模型

初识MQ 同步通讯和异步通讯 什么是同步通讯呢?举个例子,你认识了一个小姐姐,聊的很火热,于是你们慢慢开始打电话,视频聊天,这种方式就成为同步通讯,那什么是一部通讯呢,同样的&…

gitlab(docker)安装及使用

GitLab GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。 下载(docker) 查询docker镜像gitlab-ce gitlab-ce是它的社区版 [rootlocalhost ~]# docker search gitlab-ce NAME …

OpenCV基本图像处理操作(六)——直方图与模版匹配

直方图 cv2.calcHist(images,channels,mask,histSize,ranges) images: 原图像图像格式为 uint8 或 float32。当传入函数时应 用中括号 [] 括来例如[img]channels: 同样用中括号括来它会告函数我们统幅图 像的直方图。如果入图像是灰度图它的值就是 [0]如果是彩色图像 的传入的…

SETR——Rethinking系列工作,展示使用纯transformer在语义分割任务上是可行的,但需要很强的训练技巧

题目:Rethinking Semantic Segmentation from a Sequence-to-Sequence Perspective with Transformers 作者: 开源:https://fudan-zvg.github.io/SETR 1.研究背景 1.1 为什么要研究这个问题? 自[ 36 ]的开创性工作以来,现有的语义分割模型主要是**基于全卷积网络( FCN )的…

ubuntu20.04安装+ros-noetic安装+内网穿透frp

刷机后的系统安装 ubuntu20.04安装安装ros-noetic安装各种必要的插件安装vscode内网穿透连接实验室主机配置frpc和frps文件运行完成自动化部署免密登录linux的免密登录windows上的免密登录 内网穿透的参考链接:如何优雅地访问远程主机?SSH与frp内网穿透配…

Python学习笔记 - 正则表达式

前言 正则表达式(Regular Expression,在代码中常简写为 regex、regexp、RE 或 re)是预先定义好的一个“规则字符串”,通过这个“规则字符串”可以匹配、查找、替换那些符合“规则”的文本,也就是说正则表达式针对的目标…

MSTP/RSTP的保护功能

目录 原理概述 实验目的 实验内容 实验拓扑 1.配置RSTP/MSTP 2.配置BPDU保护 3.配置根保护 4.配置环路保护 5.配置TC-BPDU保护 原理概述 在RSTP或MSTP交换网络中,为了防止恶意攻击或临时环路的产生,可配置保护功能来增强网络的健壮性和安全性。…

C++vector类(个人笔记)

vector类 1.熟悉vector接口以及使用1.1vector的定义1.2vector迭代器使用1.3vector空间增长1.4vector增删查改1.5vector迭代器失效问题(重点) 2.vector的一些笔试题3.模拟实现vector 1.熟悉vector接口以及使用 vector的C官网文档 1.1vector的定义 (con…

用python快速读取大文件几个GB以上的csv数据文件

用python快速读取大文件几个GB以上的csv数据文件 遇到几个GB的csv大文件,用python读取时,可以通过next()函数一行行来读取以提高效率,然后分批量进行处理。 1、文件格式例图 其中第一、第二行是数据行数、列数汇总。 2、流程 1、把csv第一、第二行的数据说明,先读取出来…

Windows远程桌面连接虚拟机Linux

Windows远程桌面连接虚拟机Linux 需要先打开虚拟机的启用VNC连接使用VNC客户端进行连接 yum install -y tigervnc-server #安装tigervnc-server vncserver #启动一个vnc进程 #第一次启动会要求设置密码 #如果需要更改密码可以使用vncpasswd进行更改密码 vncserver -list #查看…

ASUS华硕ROG幻13笔记本电脑GV301R工厂模式原厂OEM预装Windows11系统,恢复出厂开箱状态

适用于型号:GV301RC、GV301RE、GV301RA 工厂模式安装包:https://pan.baidu.com/s/1gLme1VqidpUjCLocgm5ajQ?pwddnbk 提取码:dnbk 工厂模式Win11安装包带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题壁纸、系统属性专属联机支持标志…

java算法day55 | 动态规划part16 ● 583. 两个字符串的删除操作 ● 72. 编辑距离

583. 两个字符串的删除操作 思路: 和1143.最长公共子序列这道题思路相同,只不过需要对return的数据做一些操作。 class Solution {public int minDistance(String word1, String word2) {int[][] dpnew int[word1.length()1][word2.length()1];for(int …

06_定时器中断

72分频 72MHz 72000000 经过72分频 1000000

【攻防世界】ics-07

<?php session_start();if (!isset($_GET[page])) {show_source(__FILE__);die(); }if (isset($_GET[page]) && $_GET[page] ! index.php) {include(flag.php); }else {header(Location: ?pageflag.php); } <?phpif ($_SESSION[admin]) {$con $_POST[con];$…

可溶性PFA材质三角漏斗耐腐蚀进口聚四氟乙烯漏斗低溶出析出

PFA全名为可溶性聚四氟乙烯、全氟烷氧基树脂&#xff0c;成品外观透明可视&#xff0c;便于观察&#xff0c;有着良好的化学稳定性、耐温性&#xff0c;耐受强酸强碱以及各种有机溶剂&#xff0c;且PFA原料本身较为洁净&#xff0c;金属离子溶出析出少&#xff0c;经过清洗后可…

OpenCV——SUSAN边缘检测

目录 一、SUSAN算法二、代码实现三、结果展示 OpenCV——SUSAN边缘检测由CSDN点云侠原创&#xff0c;爬虫自重。如果你不是在点云侠的博客中看到该文章&#xff0c;那么此处便是不要脸的爬虫。 一、SUSAN算法 Susan边缘检测是一种经典的边缘检测算&#xff0c;它由Susan Smith…

1044: 顺序栈基本操作的实现

解法&#xff1a; #include<iostream> #include<stack> using namespace std; int main() {int n, a, k;stack<int> sk;cin >> n;while (n--) {cin >> a;sk.push(a);}cin >> k;while (k--) {sk.pop();}if (!sk.empty()) {cout << s…