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

news2024/12/23 4:34:50

目录

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.coloradmin.cn/o/1597885.html

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

相关文章

PTA 编程题(C语言)-- 判断素数

题目标题: 判断素数 题目作者 陈越 浙江大学 本题的目标很简单,就是判断一个给定的正整数是否素数。 输入格式: 输入在第一行给出一个正整数N(≤ 10),随后N行,每行给出一个小于…

渗透测试实战——第一站

仅供交流学习使用,请勿用于非法用途 前言:刚学了sql注入,只听理论总感觉没啥用,今天花了一半个多小时,去尝试寻找有漏洞的网站,最终找到了一个;实践是检验真理的唯一标准。 我是通过黑客常用语法…

网络基础先导

前言:最好在牢固前面几大件(编程语言、数据结构、操作系统),并且您有一个服务器的基础上(我使用的是腾讯云中配置最低的服务器)再来学习本系列的网络知识。 1.网络发展简要 下面就是简单提及一些概念而已&…

Shortened LLaMA:针对大语言模型的简单深度剪枝法

🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 论文标题 & 发表会议:Shortened LLaMA: A Simple Depth Pruning for Large Language Models(ICLR 2024 Workshop) 论文地址:https://arxiv.org/abs/…

绝地求生:PWS韩国联赛结束:KDF夺冠,DNW三年来首次错失世界赛

4.14号PWS韩国联赛结束了为期3天的决赛,KDF战队以73击杀117分获PWS第一阶段冠军,队内Heaven获MVP,DK_seoul伤害王。 常规赛靠前的DNW和Gen.G决赛均发挥失常都没有进入前八,其中上届世界冠军DNW在双S核心出走后时隔三年首次错失世界…

OpenHarmony轻量系统开发【4】编写第一个程序、启动流程分析

摘要:本文简单介绍如何编写第一个hello world程序,以及程序是被执行的 适合群体:适用于Hi3861开发板,启动流程分析 4.1编写第一个程序 编写一个hello world程序比较简单,可以参考官网: https://gitee.c…

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

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

粤嵌—2024/3/21—Pow(x,n)

代码实现&#xff1a; 方法一&#xff1a;常规解法——超时 double myPow(double x, int n) {if (n 0) {return 1.0;}if (x 1.0) {return x;}double num x;if (n > 0) {for (int i 1; i < n; i) {num num * x;}} else {n -n;for (int i 1; i < n; i) {num num…

Java编译期注解处理器AbstractProcessor使用

我们接触的注解主要分为以下两类 运行时注解&#xff1a;通过反射在运行时动态处理注解的逻辑编译时注解&#xff1a;通过注解处理器在编译期动态处理相关逻辑 编译期注解我们常用的有Lombok&#xff0c;在class文件中自动生成get和set方法 解编译期处理流程最关键的一个类就…

springMVC理解

springMVC是一种思想&#xff0c;将软件划分为&#xff0c;模型Model&#xff0c;视图View&#xff0c;控制器Controller。 MVC的工作原理&#xff1a;用户通过前端视图页面&#xff0c;发送请求到服务器&#xff0c;在服务器中请求被Controller接收&#xff0c;Controller调用…

JVM之JVM栈的详细解析

Java 栈 Java 虚拟机栈&#xff1a;Java Virtual Machine Stacks&#xff0c;每个线程运行时所需要的内存 每个方法被执行时&#xff0c;都会在虚拟机栈中创建一个栈帧 stack frame&#xff08;一个方法一个栈帧&#xff09; Java 虚拟机规范允许 Java 栈的大小是动态的或者是…

数据可视化基础与应用-04-seaborn库人口普查分析--如何做人口年龄层结构金字塔

总结 本系列是数据可视化基础与应用的第04篇seaborn&#xff0c;是seaborn从入门到精通系列第3篇。本系列主要介绍基于seaborn实现数据可视化。 参考 参考:我分享了一个项目给你《seaborn篇人口普查分析–如何做人口年龄层结构金字塔》&#xff0c;快来看看吧 数据集地址 h…

系统架构最佳实践 -- 供应链系统架构

供应链系统是现代企业管理中不可或缺的一部分&#xff0c;它涉及到从原材料采购到产品销售的整个生产流程。一个高效的供应链系统可以帮助企业实现成本控制、库存优化和客户满意度提升等目标。在本文中&#xff0c;我们将讨论供应链系统的设计与实践。 一、供应链系统设计 业务…

112 arcpy 发布 mxd地图文件 到 arcgis服务器 为 地图服务

前言 此文档主要是记录一下 最近的一次机遇 arcpy 来发布 地图文件到 arcgis服务器 上面 arcpy 主要是来自于 ArcGIS_Desktop_105_154030.zip 安装之后会在 python 的安装目录 安装另外的一份带 arcgis 的 python 环境, 然后 本文相关类库 也是基于 这个 arcpy 的 python 环境…

python 判断变量是数字型还是字符型

python如何判断数据类型&#xff1f;方法如下&#xff1a; 使用type()函数&#xff1a; import types type(x) is types.IntType # 判断是否int 类型 type(x) is types.StringType #是否string类型可以不用记住types.StringType&#xff0c;即&#xff1a; import types type(…

Ubuntu 22.04安装中文输入法

1. 安装 sudo apt install fcitx5 2. 管理已安装的语言 Setting->Region & Language->Manage Installed Language 在下图中点击“安装”&#xff0c;之后需要等一会 选择Fcitx 5 3. 添加输入法 Setting->Keyboard 点击chinese 选择你想要的输入法 重启一下&a…

安全中级-初开始

一、网络基础 重要点&#xff1a;TTL值&#xff08;防环&#xff0c;linux64.Windows128 &#xff09;&#xff0c;IP数据包包头格式字节&#xff08;20&#xff09; 标识标志偏移量起到什么作用&#xff08;数据超过1500会分片&#xff09; wireshack抓包会有一个MSS&#x…

R语言 并行计算makeCluster报错

问题&#xff1a;使用parallel包进行并行计算&#xff0c; cl <- makeCluster(detectCores()) 出现以下问题&#xff1a; 解决方式&#xff1a;用makeClusterPSOCK命令代替即可 library("future") cl <- makeClusterPSOCK(124, revtunnel TRUE, outfile &…

基于51单片机的智能小车

一、安装 二、电机模块 1.L9110S电机控制器接线 实物接线&#xff1a; 2.L9110前后左右控制小车 2.1分文件编写 2.2使用串口发送以及使用中断优化 中断&#xff1a; 2.3增加蓝牙控制 2.4设置点动的效果 2.5软件调速的原理&#xff08;参考PWM波&#xff09; 原理&#xff1a…

OpenHarmony轻量系统开发【6】驱动之ADC按键

摘要&#xff1a;本文简单介绍如何操作ADC去读取电压&#xff0c;并且实现开发板上3个ADC按键检测的功能 适合群体&#xff1a;适用于润和Hi3861开发板&#xff0c;L0轻量系统驱动开发 文中所有代码仓库&#xff1a;https://gitee.com/qidiyun/hihope-3861-smart-home-kit 6…