常见的内置模块
常见的内置模块
- 时间模块之datetime模块
- os 模块
- json 模块
时间模块——datetime模块
datetime模块与 time 模块类似,都是对时间的操作相关的模块
-
datetime 模块的方法
方法 作用 datetime.datetime.today() 获取当前的年、月、日、 时、分、秒 datetime.date.today() 获取当前的年、月、日 datetime.time.strftime() 可以自主调节格式,但需要提供格式 datetime.timedelta( ) 可用于获取的时间差值,定时装置 datetime.now() 获取当前时间 datetime.utcnow() 获取当前的格林的时间 -
调用datetime 的方法
import datetime 1.res = datetime.datetime.today() # 获取年月日日分秒的 2.res1 = datetime.date.today() # 获取年月日的 print(res) # 2022-07-15 15:12:04.703795 print(res1) # 2022-07-15 print(res.year) # 2022 """可以通过句点符的形式,直接单独得到年,月,日等""" 3.res2 = datetime.datetime.strftime('%Y/%m/%d') """得到时间后可以通过strftime()的方式,将自己想输出的时间格式写道括号中""" 4.res3 = datetime.timedelta(days=5) # 获取的时间差值,定时装置 # days: float = ..., 天 # seconds: float = ..., 秒 # microseconds: float = ..., 微妙 # milliseconds: float = ..., 毫秒 # minutes: float = ..., 分钟 # hours: float = ..., 小时 # weeks: float = ..., 周 # 没有的时间可以通过换算得来 """使用timedelta方法,可以获取时间的插值,当作延时装置。括号中的条件仅限上述情况""" print(datetime.datetime.now()) print(datetime.datetime.utcnow()) c =datetime.datetime(2022, 7, 15, 15, 20) print('指定日期:',c)
程序块实现:
os 模块
os模块主要是跟当前程序所在的操作系统打交道
-
os 模块的功能
方法 功能 mkdir(r'aaa' ) 在执行文件的同级路径下创建单级目录 makdir( r'bbb\ccc\ddd') 在执行文件的同级路径下创建多级目录(也可创建单级目录) rmdir(r'aaa') 删除单级目录(有数据的则不能被删除) removedirs(r'ccc') 由内而外递归删除空目录 直到有数据的目录为止 listdir() 列举指定路径下的文件名称(文件、目录) rename(r'a.txt',r'aaa.txt') 重命名文件(将前者的文件名更改成后者) remove(r'aaa.txt') 删除文件 getcwd() 获取当前所在路径 path.dirname(__ file __) 获取当前文件所在的目录路径 path.abspath(__ file __) 获取当前文件的绝对路径 path.exists( ) 判断路径是否存在(存在为True,不存在为False) path.isdir( ) 用于判断该路径是否为目录或文件夹(是为True,不是为False) path.isfile( ) 只用于判断路径是否是文件(是为True,不是为False) path.join() 用于拼接二者的路径 path.getsize() 获取文件大小 单位为( bytes) -
os模块的各个功能的使用
-
创建目录
import os os.mkdir(r'adc') # 创建单级目录 os.mkdir(r'ba\ddf\cf') # 直接报错,无法创建多级目录 os.makedirs(r'dnf\cf\cs') # 可创建多级目录(也可以创建单级目录)
代码实现:
-
删除目录
import os os.rmdir(r'adc') # 可以产出单级目录 os.rmdir(r'vn') # 报错,目录不为空时,不能使用此方法删除 os.removedirs(r'dnf\cf\cs') # 由内而外递归删除空目录,直到有数据的目录为止
代码实现:
-
列举指定路径下的文件
import os print(os.listdir()) # 结果是列表 print(os.listdir(r'D:\\'))
代码实现:
-
重命名文件
import os os.rename(r'a.txt',r'aaa.txt')
代码实现:
-
删除文件
import os os.remove(r'ez.txt')
直接删除所填写的文件
-
获取当前的所在路径
import os print(os.getcwd()) # D:\pc\day24
直接打印出当前文件所在的绝对路径
-
与程序启动相关
import os print(os.path.abspath(__file__)) # 获取当前文件的绝对路径(可以不记) print(os.path.dirname(__file__)) # 获取当前文件所在的目录路径(必须得记)
代码实现:
-
判断路径是否存在
import os print(os.path.exists(r'VN')) # True print(os.path.exists(r'ATM')) # False # isdir只用于路径是否是目录(文件夹) print(os.path.isdir(r'aaa.txt')) # False print(os.path.exists(r'VN')) # True # isfile只用于路径是否是文件 print(os.path.isfile(r'aaa.txt')) # True print(os.path.isfile(r'VN')) # False
实现代码:
-
拼接路径
涉及到路径拼接 不要使用加号 建议使用os模块的里面join方法
import os relative_path = r'aaa.txt' absolute_path = r'D:\pc\day24\VN' res = os.path.join(absolute_path, relative_path)
使用join方法,直接将两个文件的路径拼接到一起
join方法可以自动识别当前所在的操作系统并自动切换正确的分隔符 windows用\ mac用/
-
获取文件大小 (单位是 bytes 字节)
import os print(os.path.getsize(r'02 os模块.py')) # 2363 print(os.path.getsize(r'a.txt')) # 17
获取的文件是以字节为单位计数
-
sys模块
-
sys模块的作用
sys模块主要是跟python解释器打交道
-
sys模块的方法功能
方法 功能 path 结果是列表 version 查看解释器信息 platform 查看当前平台 argv 命令行参数List,第一个元素是程序本身路径 exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) argv 是在cmd中执行的方法
命令行执行当前文件必须要提供用户名和密码 否则不准执行
json 模块
-
json 模块 的作用
json模块是不同编程语言之间数据交互必备的模块
图例展示:
-
json的格式
数据基于网络传输肯定是二进制 那么在python中只有字符串可以调用encode方法转成二进制数据 所以json格式的数据也属于字符串
json格式的数据有一个非常明显的特征
首先肯定是字符串 其次引号是标志性的双引号 -
json的功能
方法 功能 dumps( ) 将其他数据类型转换成json格式字符串 loads() 将json格式字符串转化成对应的数据类型 dump() 将其他数据数据以json格式字符串写入文件 load() 将文件中json格式字符串读取出来并转换成对应的数据类型 -
json 序列化和反序列化
1.序列化
将其他数据类型转换成json格式字符串d = {'name': 'jason', 'pwd': 123} import json res = json.dumps(d) # 序列化 将其他数据类型转换成json格式字符串 print(res, type(res))
2.反序列化
将json格式字符串转换成对应编程语言中的数据类型d = {'name': 'jason', 'pwd': 123} import json res = json.dumps(d) # 序列化 res1 = json.loads(res) # 反序列化 print(res1,type(res1))
- 在不使用json模块将字典保存在文件中
d = {'name': 'jason', 'pwd': 123} with open(r'b.txt','w',encoding='utf8') as f: f.write(str(d)) with open(r'b.txt','r',encoding='utf8') as f: data = f.read() print(data, type(data))
正常情况下,将字典写入文件中,读出的是字符串的形式,而不是字典的形式
使用json模块将字典保存在文件中 d = {'name': 'jason', 'pwd': 123} import json with open(r'b.txt','w',encoding='utf8') as f: # f.write(json.dumps(d)) json.dump(d, f) # 直接让字典写入文件(json自动帮你完成转换) with open(r'b.txt','r',encoding='utf8') as f: # data = f.read() # res = json.loads(data) # print(res, type(res)) res = json.load(f) print(res, type(res)) 存入文件中是以json字符串的形式传入其文件中,取出扔是字典