时间模块、系统操作模块、json模块等

前言

py文件名尽量不要与模块名冲突(内置、第三方)

datetime模块

常见内置函数

# 与time模块相似,都是与时间操作相关的模块
import datetime
'datetime 年月日  时分秒'
res = datetime.datetime.today()
print(res)
print(res.year)  # 2022
print(res.month)  # 7
print(res.weekday())  # 4
print(res.isoweekday())  # 5

'date  年月入'
res1 = datetime.date.today()
print(res1)

'timedelta可以当作一个计时器'
tl = datetime.timedelta(days=2)
print(res1+tl)  # 2022-07-17
print(res1-tl)  # 2022-07-13

补充说明

print(datetime.datetime.now())  # 本地时间
print(datetime.datetime.utcnow())  # utc 协调世界时(世界标准时间)

c = datetime.datetime(2020,5,20,2,50)
print('指定日期:',c)  # 指定日期: 2020-05-20 02:50:00

os模块

创建目录(文件夹)

os.mkdir(r'aaa')  # 使用相对路径 在当前执行文件所在的目录下创建一个aaa文件  只能创建单级目录
os.makedirs(r'xxx/ccc')  # makedirs可以创建多级目录,也可以创建单级目录

删除目录(文件夹)

os.rmdir(r'aaa')
os.removedirs('xxx/ccc')   # 删除目录之后如果外层的目录也是空的则继续删除,可以删除单级目录

查看某个路径下所有的文件名称(文件、文件夹)

# print(os.listdir('./ccc'))  # ['datetime模块.py', 'b.py']
# print(os.listdir())  # 默认为执行文件的目录路径

删除文件,重命名文件

os.remove(r'./ccc/b.py')  # 删除文件
os.rename(r'./ccc/a.py',r'./ccc/b.py')  # 重命名文件

获取当前路径、切换路径

print(os.getcwd())  # 获取当前路径
os.chdir(r'/Users/xunfei')  # 切换到指定路径,括号内填写想要指定的路径
print(os.getcwd())

与程序启动文件相关

'__file__指的是当前执行文件'
print(os.path.dirname(__file__))  # 动态获取当前执行文件的所在的目录路径
print(os.path.dirname(os.path.dirname(__file__)))  # 每嵌套一层就是往上切换一层
print(os.path.abspath(__file__))  # 动态获取当前执行文件自身的路径

判断文件是否存在

'判断目录或路径是否存在'
print(os.path.exists(r'./ccc/b.py'))  # 判断所给的路径是否存在
print(os.path.isdir(r'ccc'))  # 判断路径是否是一个文件夹
print(os.path.isdir(r'ccc/b.py'))  # False

'判断文件是否存在'
print(os.path.isfile(r'ccc'))  # False  判断路径是否是一个文件
print(os.path.isfile(r'ccc/b.py'))  # True

拼接路径

base_dir= 'ccc'
exe_dir = 'b.py'
print(base_dir+'/'+exe_dir)  # ccc/b.py # 路径分隔符在不同的系统下是不一样的,使用加号的化兼容性极差

res = os.path.join(base_dir,exe_dir)  # 能够自动识别当前操作系统的分隔符
print(res)

获取文件大小(字节 bytes)

print(os.path.getsize(__file__))

sys模块

import sys
# print(sys.path)  # 返回的是一个列表,值得是环境变量

# print(sys.version)  # 查看解释器版本信息

# print(sys.platform)  # 查看当前平台
"""
返回pycharm模拟的终端的 返回的是一个列表,能够捕获到我们在模拟的终端所输入的所有参数,我们可以通过他的返回值来模拟像mysql在终端的登录
"""
res = sys.argv  
print(res)
if len(res) ==3:
    username = res[1]
    password = res[2]
    if username == 'xunfei' and password=='123':
        print('你正在执行该文件')
    else:
        print('用户名或密码错误')
else:
    raise Exception('对不起,您输入错误')

image

json模块

json模块的定义

1.json是一个序列化模块,主要是用于跨语言传输数据
2.json模块是不同编程语言之间数据交互的必备模块(处理措施)
3.Json格式数据是什么
    数据基于网络传输肯定是二进制,那么在python中只有字符串可以调用encode方法转成二进制数据,所以json格式的数据属于字符串
4.json的特点
    首先肯定是字符串,其次引号是标志性的双引号

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就可以实现'
import json
res = json.dumps(d)  # 序列化    将其他数据类型转换成json格式字符串
print(res, type(res))
{"name": "jason", "pwd": 123} <class 'str'>
d1 = {"name": "jason", "pwd": 123}
print(d1)  # {'name': 'jason', 'pwd': 123}
res1 = json.loads(res)  # 反序列化   将json格式字符串转换成对应编程语言中的数据类型
print(res1, type(res1))  # {'name': 'jason', 'pwd': 123} <class 'dict'>

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的实战

#  涉及到用户数据的存储 可以单用户单文件
	jason.json
	kevin.json
 	oscar.json
    
import json
import os


base_dir = r'D:\pythonProject\day24\db'
username = input('username>>>:').strip()
username_list = os.listdir(base_dir)
if username in username_list:
    file_path = os.path.join(base_dir,username)
    with open(file_path, 'r', encoding='utf8') as f:
        data = json.load(f)
    print(data, type(data))
print(os.listdir(r'D:\pythonProject\day24\db'))
base_dir = os.path.dirname(__file__)
db_path = os.path.join(base_dir,'db')
if not os.path.exists(db_path):
    os.mkdir(db_path)
username = input('username>>>:').strip()
password = input('password>>>:').strip()
user_dict = {'username': username,
             'password': password,
             'balance': 15000,
             'shop_car':[]
             }
file_path = os.path.join(db_path, '%s'%username)
with open(file_path,'w',encoding='utf8') as f:
    json.dump(user_dict, f)

hashlib模块

random模块

posted @ 2022-07-15 22:12  荀飞  阅读(19)  评论(0编辑  收藏  举报