目录
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
格式的时间转成自定义的格式;
-
-
time.sleep(x)
:表示程序执行到这一行就休眠x秒,经常用在自动化代码中实现等待的效果。
print(time.strftime("%y年%m月%d日 %H:%M:%S", time.gmtime(os.path.getatime(r"D:\Document"))))
6 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 open
和with open as
的区别
-
open()函数:这样直接打开文件,如果出现异常,如读取过程中文件不存在或异常,则直接出现错误,close方法无法执行,导致文件无法关闭。
-
用with语句的好处,就是到达语句末尾时,即便出现异常也会自动关闭文件
7 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()
函数使用实例:
字符串转换成其他数据类型:"[]"转换出来列表,如果"()"转换出来为元组,如果为“{}”转换出来为字典
#打开文件
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::])