python知识-模块

datetime模块

与time模块相似 都是与时间操作相关的模块
import datetime
res = datetime.datetime.today()
res1 = datetime.date.today()

print(res.year)  # 2022
print(res.month)  # 7
print(res.weekday())  # 4
print(res.isoweekday())  # 5
"""
date    年月日
datetime    年月日 时分秒  
"""
t1 = datetime.timedelta(days=1)
print(res1 + t1)  # 2022-07-16
print(res1 - t1)  #2022-07-14
"""
timedelta括号内有很多参数 没有的可以通过换算时间换算得出
"""
补充说明
print(datetime.datetime.now())  # 2022-07-15 15:19:32.802248
print(datetime.datetime.utcnow())  # 2022-07-15 07:19:32.802248
c = datetime.datetime(2022, 6, 28, 9, 25)
print('指定日期:',c)  # 指定日期: 2022-06-28 09:25:00

os模块

os模块主要是跟当前程序所在的操作系统打交道	
import os
1.创建目录
# os.mkdir(r'aaa')  # 创建单级目录
# os.mkdir(r'bbb\ccc\ddd')  # mkdir无法创建多级目录
# os.makedirs(r'bbb\ccc\ddd')  # makedirs可以创建多级目录
os.makedirs(r'eee')  # makedirs也可以创建单级目录

image

2.删除目录
    os.rmdir(r'aaa')  # 可以删除单级目录
    os.rmdir(r'ccc')  # 但是单级目录下不能有其他数据 也不支持多级目录的删除
    os.removedirs(r'ccc')  # 针对有数据的目录无法删除
    os.removedirs(r'bbb\ccc\ddd')  # 由内而外递归删除空目录 知道有数据的目录为止

image

3.列举指定路径下的文件名称(文件、目录)
print(os.listdir()) # ['.idea', 'bbb', 'datetime模块.py', 'eee', 'os模块.py']
print(os.listdir(r'D:\\'))
4.重命名文件 删除文件
import os
os.rename(r'a.txt',r'aaa.txt')
os.remove(r'aaa.txt')
 5.获取当前工作路径(所在的路径) 绝对路径
print(os.getcwd())
os.chdir(r'..')
os.mkdir(r'hahaha')
print(os.getcwd())
 6.与程序启动文件相关
print(os.path.abspath(__file__))  # 获取当前文件的绝对路径
print(os.path.dirname(__file__))  # 获取当前文件所在的目录路径(必须得记)
7.判断路径是否存在(文件、目录)
print(os.path.exists(r'ATM'))
print(os.path.exists(r'aaa'))
print(os.path.exists(r'01 datetime模块.py'))
print(os.path.exists(r'a.txt'))
print(os.path.isdir())  # isdir只用于路径是否是目录(文件夹)
print(os.path.isdir(r'ccc'))
print(os.path.isdir(r'01 datetime模块.py'))
print(os.path.isfile())  # isfile只用于路径是否是文件
print(os.path.isfile(r'ccc'))
print(os.path.isfile(r'01 datetime模块.py'))
8.拼接路径
relative_path = 'a.txt'
'''拼接a.txt的绝对路径'''
absolute_path = r'D:pythonProject\day23\ccc\ddd\eee'
print(absolute_path + relative_path)
'''涉及到路径拼接 不要使用加号 建议使用os模块的里面join方法'''
res = os.path.join(absolute_path,relative_path)
print(res)
 ps:join方法也可以自动识别当前所在的操作系统并自动切换正确的分隔符 windows用\ mac用/
 9.获取文件大小 bytes
print(os.path.getsize(r'02 os模块.py'))
print(os.path.getsize(r'a.txt'))

Sys模块

** Sys模块主要是跟Python解释器打交道**
import sys
print(sys.path)
print(sys.version)
print(sys.platform)
res = sys.platform
'''需求 命令执行当前文件必须提供用户名和密码 否则不执行 '''
if len(res) == 3:
    username = res[1]
    password = res[2]
    if username == 'curry' and password == '123':
        print('您可以正在执行该文件')
    else:
        print('用户名或密码错误')
else:
    print('请填写用户名和密码 二者不可或缺')

json模块

json模块也可以称为序列化模块
json模块是不同编程语言之间数据交互必备的模块(处理措施)
json格式的数据应该是什么
	数据基于网络传输肯定是二进制 那么在python中只有字符串可以调用encode方法转成二进制数据 所以json格式的数据也属于字符串
json格式的数据有一个非常明显的特征
	首先肯定是字符串 其次引号是标志性的双引号
d = {'name:''curry','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))

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

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))
"""
dumps() 将其他数据类型转换成json格式字符串
loads() 将json格式字符串转换成对应的数据类型

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

json模块的实参

import json
import os

base_dir = r'D:\pythonProject\day23\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\day23\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': 10000,
             '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)
posted @   初学者-11  阅读(39)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示