python学习Day24
2022/7/16 1:20:12
本文主要是介绍python学习Day24,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Day 24
今日内容概要
- 时间模块之datetime模块
- os模块
- sys模块
- json模块
今日内容详细
#py文件名称尽量不要与模块名(内置、第三方)冲突
1.datetime模块
1. import datetime res=datetime.datetime.today()#获取年月日时分秒(秒很精确) print(res)#2022-07-15 15:38:47.867384 res1=datetime.date.today()#获取年月日 '还可以通过点的方式点出来想要的日期如:' print(res1)#2022-07-15 print(res.year)#年 print(res.month)#月 print(res1.isoweekday())#星期几 ''' date 年月日 datetime 年月日时分秒 ''' 2. tl = datetime.timedelta(days=3)#定义一个时间差值 print(res1 + tl) # 2022-07-18 print(res1 - tl) # 2022-07-12 ''' 括号内可以添加很多参数 没有的时间可以换算得到 '''
2.os模块
os模块主要是跟当前程序所在的操作系统打交道 import os 1.创建目录 os.mkdir(r'aaa')#创建单级目录(创建在当前执行执行文件所在的路径下) os.makedirs(r'bbb\ccc\ddd')#可以创建单级与多级目录 2.删除目录 os.rmdir(r'aaa')#可以删除单级目录(目录下不能有任何东西,仅能删空白文件夹) os.removedirs(r'bbb\ccc\ddd')#可以删除多级目录(目录内不能有任何东西,从内到外删除直到某个目录内有其他数据为止) 3.列举指定路径下的文件名称(包含文件、目录) print(os.listdir())#列举当前执行文件所在路径下所有文件夹、文件名称,结果是列表 print(os.listdir(r'D:\\'))#把D盘所有文件名字列举出来 4.重命名文件,删除文件 os.rename(r'a.txt',r'aaa.txt')#把a.txt重命名为aaa.txt os.remove(r'a.txt')#删除该文件 5.获取当前工作路径(当前所在的绝对路径)#结果与下面dirname一样,下面的更常用 print(os.getcwd())#D:\pythonProject\day20 os.chdir(r'..')#上一层路径 切换路径 print(os.getcwd())#D:\pythonProject 6.与程序启动文件相关 #获取当前文件所在的绝对路径(可以不记) print(os.path.abspath(__file__))#D:\pythonProject\day20\lx1.py #获取当前执行文件所在的路径(必须记). print(os.path.dirname(__file__))#D:\pythonProject\day20 #且可支持嵌套(往上一层)如day23的解决办法1 res=os.path.dirname(os.path.dirname(__file__))#D:/pythonProject赋值给res sys.path.append(res)#把该目录文件添加到sys.path模块查询路径列表中,这样无论把该目录放在哪个位置都可以运行 7.判断路径(文件、目录)是否存在 print(os.path.exists(r'bbb'))#True print(os.path.exists(r'sdfafdaf'))#False isdir:只用于判断路径是否是目录(文件夹) print(os.path.isdir(r'ccc'))#True print(os.path.isdir(r'lx1.py'))#False isfile:只用于判断路径是否是文件 print(os.path.isfile(r'ccc'))#False print(os.path.isfile(r'lx1.py'))#True 8.拼接路径 join eg:在以下路径中把a.txt拼接进去 #涉及到路径拼接,不要使用加号,应该用os模块中的join方法 absolute_path=r'D:\pythonProject\day20\ccc\ddd\eee' relative_path='a.txt' res=os.path.join(absolute_path,relative_path) print(res)#D:\pythonProject\day20\ccc\ddd\eee\a.txt # ps:join方法可以自动识别当前的操作系统并自动转换分隔符 windows用\ mac用/ 9.获取文件大小 单位是字节bytes print(os.path.getsize(r'lx1.py')) #844
3.sys模块
sys模块主要是跟python解释器打交道 import sys print(sys.path)#当前执行文件所在的系统变量 结果是列表 print(sys.version)#获取当前解释器版本信息 print(sys.platform)#查看当前平台 ______________________________________________________ res = sys.argv '需求:只能用命令行执行当前文件且必须提供用户名和密码 否则不执行' if len(res) == 3: name = res[1] pwd = res[2] if name == 'jason' and pwd == '123': print('正在执行该文件') else: print('用户名或密码错误') else: print('需填写用户名和密码') # 上述校验也可以使用异常捕获实现 python解释器下方点击Terminal就可以和cmd一样
4.json模块
json模块也叫序列化模块,是不同编程语言之间数据交互必备的模块(处理措施) #不同编程语言之间数据类型存在差异,无法直接交互 json格式的数据是什么? 数据基于网络传输肯定是二进制 那么在python中只有字符串可以调用encode(编码)方法转换成二进制数据 所以json格式的数据也属于字符串 json格式的数据有一个非常明显的特征 1.肯定是字符串 2.引号是标志性的双引号 d = {'name':'jason','pwd':123} import json res=json.dumps(d)#序列化 将其他数据类型转换成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'> —————————————————————————————————————————————————————————————————————— eg: 错误示范 #需求:将字典保存到文件中,并且将来读取出来后还是字典 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))#{'name': 'jason', 'pwd': 123} <class 'str'> —————————————————————————————————————————————————————————————————————— #上述方法写入读取后字典变成了字符串,所以需要用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)#jason自动帮我们写入完成转换(快捷方式) with open(r'b.txt','r',encoding='utf8')as f: '''data=f.read() res=json.loads(data) '''res=json.load(f)#jason自动帮我们转换回来(快捷方式) print(res,type(res))#{'name': 'jason', 'pwd': 123} <class 'dict'>
''' dumps() 将其他数据类型转换成json格式字符串 loads() 将json格式字符串转换成对应的数据类型 dump() 将其他数据类型直接以json格式字符串写入文件 load() 将文件中json格式字符串读取出来并转换成对应的数据类型 '''
作业: 整理今日内容及博客 周日下午或晚上记得完成周总结!!! 1.编写一个统计指定文件类型的脚本工具 输入指定类型的文件后缀 eg:.txt 并给出一个具体路径 之后统计该类型文件在该文件下的个数 ps:简单实现即可 无需优化 2.针对json实操 尝试单文件多用户(一行一个)是否可实现 哪个更方便 3.编程小练习 有一个目录文件下面有一堆文本文件 eg: db目录 J老师视频合集 R老师视频合集 C老师视频合集 B老师视频合集 文件内容自定义即可 要求循环打印出db目录下所有的文件名称让用户选择 用户选择哪个文件就自动打开该文件并展示内容 涉及到文件路径全部使用代码自动生成 不准直接拷贝当前计算机固定路径 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] ] 用户可以反复添加商品,在购物车中记录数量 {'极品木瓜':[个数,单价]} 结算购物车 获取用户购物车中所有的商品计算总价并结算即可 针对添加购物车和结算只有登录的用户才可以执行
这篇关于python学习Day24的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-08有遇到过吗?同样的规则 Excel 中 比Python 结果大
- 2024-03-30开始python成长之路
- 2024-03-29python optparse
- 2024-03-29python map 函数
- 2024-03-20invalid format specifier python
- 2024-03-18pool.map python
- 2024-03-18threads in python
- 2024-03-14python Ai 应用开发基础训练,字符串,字典,文件
- 2024-03-13id3 algorithm python
- 2024-03-13sum array elements python