datetime模块

与time时间模块类型 都是与时间相关的模块
import datetime  # 导入datetime模块

res = datetime.datetime.today()
print(datetime.datetime.now())  # 当前时间 2022-07-15 14:53:25.023153
print(datetime.datetime.today())  # 当前时间 2022-07-15 14:53:25.023153
print(datetime.date.today())  # 2022-07-15
print(datetime.datetime.utcnow())  # 东 2022-07-15 6:53:25.023153
print(res.year)  # 2022 表示年
print(res.month)  # 7 表示月
print(res.isoweekday())  # 5 表示周几

date # 表示年月日
datetime # 表示年月日 时分秒

# 时间差值
res1 = datetime.timedelta(days=2)
print(res + res1)  # 2022-07-17 15:01:33.666673
print(res - res1)  # 2022-07-13 15:01:33.666673

timedelta括号内有很多参数 没有的时间可以通过换算得来

os模块

os模块主要是跟当前程序所在的操作系统打交道
import os # 导入os模块
1.创建目录
os.mkdir(r'aaa')  # 创建只单级目录
os.mkdir # 不能创多级目录 会报错
os.makedirs(r'a\b\c')  # 能创建单级目录 同时也能创建多级目录

2.删除目录
os.rmdir(r'aaa')  # 可以删除单级目录 并且目录下什么都不能有 不支持删除多目录
os.removexattr(r'a\b\c')  # 针对有数据的目录无法删除 由内而外删除空目录 直到有数据的目录为止

3.列举指定路径下的文件名称(当前下文件,目录)
可以给它一个路径也可以不给 不给默认是当前执行文件下所有的文件名称 以列表形式打印
print(os.listdir(r'D:\Users\Lisony\day24')) # ['.idea', 'datetime模块.py','os模块.py',]
print(os.listdir() # ['.idea', 'datetime模块.py','os模块.py',]
print(os.listdir(r'D:\\'))  # 电脑D盘路径下所有文件

4.重命名文件 删除文件
os.rename(r'a.txt',r'b.txt')  # 重命名文件
      
os.remove(r'b.txt')  # 删除文件

5.获取当前所在路径(当前工作路径)
绝对路径
print(os.getcwd())  # D:\Users\Lisony\day24

os.chdir(r'..')  # 切换路径
print(os.getcwd())  # D:\Users\Lisony

6.与程序启动文件相关
print(os.path.abspath(__file__))  # D:\Users\Lisony\day24\os模块.py 获取当前文件绝对路径
print(os.path.dirname(__file__))  # D:/Users/Lisony/day24 获取当前执行文件所在目录路径
import sys  # 导入sys模块
res  = os.path.dirname(os.path.dirname(__file__))  # 嵌套使用提高兼容性
sys.path.append(res)  # 添加到程序环境程序变量

7.判断路径是否存在文件、目录
目录(文件夹)
print(os.path.exists(r'ATM'))  # True
print(os.path.exists(r'aaa'))  # False

路径
print(os.path.exists(r'os模块.py'))  # True
print(os.path.exists(r'a.txt'))  # False

print(os.path.isfile(r'ATM'))  # False 文件夹
print(os.path.isfile(r'os模块.py'))  # True 文件

8.拼接路径
relative = 'b.txt'  # 相对路径
absolute = r'D:\Users\Lisony\day24\ATM'  # 绝对路径
res = os.path.join(absolute, relative)  # 括号内可有写多个
print(res)  # D:\Users\Lisony\day24\ATM\b.txt
'''
join方法可有自动识别当前的操作系统并自动识别切换正确的分隔符
windows用\   max用/
'''

9.获取文件大小 bytes为单位
print(os.path.getsize(r'b.txt'))  # 32
b.txt:holle欢迎鸡哥来到红浪漫  # 英文一个中文三个 结果32

sys模块

sys模块主要是跟python解释器打交道
import sys  # 导入sys模块

print(sys.path)  # 当前执行文件所在的系统变量 结果打印的是列表
print(sys.version)  # 查看当前解释器版本信息
print(sys.platform)  # 查看当前系统平台
print(sys.argv)  # 当前文件所在路劲 ['D:/Users/Lisony/day24/sys模块.py']

sys.argv是在命令行起作用的 不是在当前文件起作用 第一个是程序本身路径 想要运行不要在pycharm直接运行 py文件pycharm执行也可以用cmd终端执行

json模块

json模块称之为序列化模块
json模块就是不同的编程语言直接数据交互必备的模块(处理措施)

json格式的数据
	数据基于网络传输肯定是二进制 在python中只有字符串可以调用encode方法转换成二进制 所以json格式的数据也属于字符串类型

json格式有个非常明显的特征
	首先肯定是字符串 其次引号是具有标识性的双引号

dict = {'name': 'jason', 'pwd': 123}
# 将上述字典保存到文件中 并将来读取出来后还是字典
with open(r'b.txt', 'w', encoding='utf8') as f:
    f.write(str(dict))
with open(r'b.txt', 'r', encoding='utf8')as f:
    data = f.read()
    print(data,type(data))  # {'name': 'jason', 'pwd': 123} <class 'str'>

import json  # 导入json模块
res = json.dumps(dict)  # 序列化 将其他数据类型转换成json格式字符串
print(res, type(res))  # {"name": "jason", "pwd": 123} <class 'str'>
res1 = json.loads(res)  # 反序列化 将json字符串装换成对应编程语言中的数据类型
print(res1,type(res1))  # {'name': 'jason', 'pwd': 123} <class 'dict'>
"""
dumps() 将其他数据类型转换成json格式字符串
loads() 将json格式字符串装换成对应的数据类型

dump() 将其他数据类型以json格式字符串写入文件
load() 将文件中json格式字符串读取出来并转换成对应的数据类型

"""

补充知识
d1 = {'name': 'joker要干饭了', 'pwd': 123}
res = json.dumps(d1)
res1 = json.dumps(d1, ensure_ascii=False)
print(res)  # {"name": "joker\u8981\u5e72\u996d\u4e86", "pwd": 123}
print(res1)  # {"name": "joker要干饭了", "pwd": 123}
# dumps序列化的时候遇到非英文的字符会自动转码 可以使用ensure_ascii=False取消转码
 posted on 2022-07-17 16:09  Joker_Ly  阅读(71)  评论(0编辑  收藏  举报