json模块补充说明
import json
d = {'name': 'jason老师', 'pwd': 123}
res = json.dumps(d) # 针对中文会自动转码 我们在查看的时候不方便
print(res)
可以用
# res = json.dumps(d, ensure_ascii=False)
# print(res)
作业讲解
1.编写一个统计指定文件类型的脚本工具
输入指定类型的文件后缀
eg:.txt
并给出一个具体路径 之后统计该类型文件在该文件下的个数
ps:简单实现即可 无需优化
import os
# 1.获取目录路径
dir_path = input('请输入目录路径>>>:').strip() # aaa
# 2.获取指定后缀名
ends_name = input('请输入想要统计的文件后缀名>>>:').strip() # .txt
# 3.列举目录路径下所有内容的名称
path_list = os.listdir(dir_path) # ['a.txt', 'a1', 'a2', 'b.txt', 'c.txt', 'd.py', 'e.py']
# 4.循环获取每一个内容名称 判断是否以用户指定的文件后缀名结尾
file_num = 0
for name in path_list:
if name.endswith(ends_name):
file_num += 1
print(f'在{dir_path}目录第一层级 以后缀名{ends_name}结尾的文件个数有:{file_num}')
"""
1.如果出现了目录的嵌套 如何统计
请说出大致思路 课下不用编写代码
2.只给一个目录的路径 直接统计该目录下第一层所有类型的内容数量
.txt:3 .py:2 目录:2 课下尝试编写代码
"""
2.针对json实操 尝试单文件多用户(一行一个)是否可实现>>>:哪个更方便
不要求完成 单纯体会两种思路的难易
3.编程小练习
有一个目录文件下面有一堆文本文件
eg:
db目录
J老师视频合集
R老师视频合集
C老师视频合集
B老师视频合集
文件内容自定义即可 要求循环打印出db目录下所有的文件名称让用户选择
用户选择哪个文件就自动打开该文件并展示内容
涉及到文件路径全部使用代码自动生成 不准直接拷贝当前计算机固定路径
import os
# 1.获取执行文件所在的路径
base_dir = os.path.dirname(__file__) # D:/pythonProject03/day20
# 2.拼接存储文本文件的目录路径
data_dir = os.path.join(base_dir, 'data') # D:/pythonProject03/day20/data
# 3.列举目录下所有内容名称
file_name_list = os.listdir(data_dir) # ['B老师视频合集.txt', 'J老师视频合集.txt', 'K老师视频合集.txt', 'R老师视频合集.txt', 'Z老师视频合集.txt']
while True: # 添加循环让项目更加的合理
# 4.循环打印文件名供用户选择查看
for num, file_name in enumerate(file_name_list, start=1): # 枚举 主要用于给数据添加编号便于查看和选取
print(num, file_name)
# 5.等待for循环展示完毕之后 获取用户想要查看的编号
choice_num = input('请输入您想要查看的文件编号(q)>>>:').strip() # 获取到的用户输入是字符串 而列表索引取值需要用数字
if choice_num == 'q':
print('拜拜 下次再见 等你哟~')
break
# 6.判断用户输入是否是纯数字
if not choice_num.isdigit():
print('你眼瞎啊 编号只能是数字 你妹的!')
continue
choice_num = int(choice_num) # 100
# 7.判断数字是否在列表的索引范围内
if choice_num not in range(1, len(file_name_list) + 1): # range(1, 6)
print('我看你是真瞎 编号不在范围内 看清楚好好输')
continue
# 8.索引取值获取用户想要查看的文件名称
target_name = file_name_list[choice_num - 1] # 'B老师视频合集.txt'
# 9.拼接文件的绝对路径(因为站在执行文件的角度找不到文本文件)
target_file_path = os.path.join(data_dir, target_name)
# 10.利用文件操作打开文件并读取内容
with open(target_file_path, 'r', encoding='utf8') as f:
for line in f:
print(line, end='')
print()
print('-------------------本次观看完了哟!----------------------')
4.周末大作业(尝试编写)
# 项目功能
1.用户注册
2.用户登录
3.添加购物车
4.结算购物车
# 项目说明
用户数据采用json格式存储到文件目录db下 一个用户一个单独的文件
数据格式 {"name":"jason","pwd":123}
# ps:文件名可以直接用用户名便于校验
用户注册时给每个用户添加两个默认的键值对(账户余额 购物车)
{"balance":15000,"shop_car":{}}
添加购物车功能 商品列表可以自定义或者采用下列格式
good_list = [
['挂壁面',3]
['印度飞饼', 22]
['极品木瓜', 666],
['土耳其土豆', 999],
['伊拉克拌面', 1000],
['董卓戏张飞公仔', 2000],
['仿真玩偶', 10000]
]
用户可以反复添加商品,在购物车中记录数量
{'极品木瓜':[个数,单价]}
结算购物车
获取用户购物车中所有的商品计算总价并结算即可
针对添加购物车和结算只有登录的用户才可以执行
购物车项目
1.单个py文件采用函数版本先写 后期如果有需要再拆分成目录规范
2.先搭建项目框架
空函数 功能字典 while循环匹配
3.注册功能
4.登录功能
5.添加购物车和结算购物车都必须要求用户登录才可以执行
校验用户是否登录装饰器
6.添加购物车
一定要注意购物车字典里面是否已经有历史数据
7.结算购物车