os模块、sys模块、json模块

os模块(重要)

1.创建目录(文件夹)

		"""os模块主要是跟操作系统打交道"""
mkdir(单级目录)   makedirs(单级、多级目录)

# 使用import os
import os
os.mkdir(r'aaa') 
# 使用相对路径,在当前执行文件所在的路径下创建一个aaa文件夹
os.mkdir(r'bbb\ccc')
# 发生报错, mkdir只能创建单级目录 

image

import os
os.makedirs(r'bbb')
os.makedirs(r'aaa\bbb\ccc')
# makedirs可以创建单级目录, 也支持创建多级目录

2.删除目录(文件夹)

rmdir(删除单级目录(空))   	removedirs(删除多级目录(空))

import os
os.rmdir(r'aaa') # 可以删除单级目录
os.rmdir(r'aaa\bbb\ccc') # 不可以一次性删除多级目录
os.rmdir(r'aaa')  # 只能删空的单级目录

os.removedirs(r'aaa\bbb\ccc') # 可以删除多级目录
os.removedirs(r'aaa\bbb\ccc\ddd')  # 只能删除空的多级目录

# 想要删除多级目录,也可以使用绝对路径
Copy path
os.removedirs(r'E:\线下作业\pythonProject\模块练习\aaa\bbb\ccc')
 # 删除所选的目录之后,外层的目录如果也是空的那么会一直删

3.查看某个路径下的所有文件名称

listdir

import os
print(os.listdir()) # 获取文件名称
# ['.idea', 'aaa', 'os模块.py']
print(os.listdir(r'E:\线下作业\pythonProject'))
# ['模块练习']

image

4.删除文件、重命名文件

remove(删除文件)	rename(重命名文件)

import os
os.remove(r'c.txt') # 删除文件
os.rename(r'qqq.txt',r'zzz.txt') # 重命名文件

image

5.获取/切换当前工作目录

getcwd

# 获取当前路径
import os
print(os.getcwd()) # E:\线下作业\pythonProject\模块练习
os.chdir('..') # 切换到上一级目录
print(os.getcwd()) # E:\线下作业\pythonProject
os.mkdir(r'qqq') # 创建文件夹qqq

6.动态获取项目根路径(重要***)

abspath			dirname

import os
print(os.path.abspath(__file__)) 
# 获取执行文件的绝对路径
# E:\线下作业\pythonProject\模块练习\os模块.py
print(os.path.dirname(__file__)) 
# 获取执行文件所在的目录路径
# E:\线下作业\pythonProject\模块练习

7.判断路径是否存在(文件\目录)

exists(判断路径是否存在)

import os
# 判断所给的路径是否存在
print(os.path.exists(r'aaa'))  # True
# 判断所给的路径是否存在
print(os.path.exists(r'os模块.py')) # True

image

isdir(是否是文件夹)

import os
# 判断是否是文件夹
print(os.path.isdir(r'qwe')) # True
# 判断是否是文件夹
print(os.path.isdir(r'os模块.py')) # False

image

isfile(是否是文件)

import os
# 判断是否是文件
print(os.path.isfile(r'qwe')) # Flase
# 判断是否是文件
print(os.path.isfile(r'os模块.py')) # True

image

8.路径拼接(重要***)

import os
base_dir = 'E:\线下作业\pythonProject\模块练习\qwe'
exe_dir = 'os模块.py'

# 拼接到py文件的路径
print(f'{base_dir}\{exe_dir}') # 路径分隔符在不同系统不一样,所以兼容性极差
"""
涉及到路径拼接一定不要自己做 因为不同的操作系统路径分隔符不一样
"""
print(os.path.join(base_dir,exe_dir)) # 能够自动识别当前操作系统的分隔符

image

9.获取文件大小(字节数,bytes)

import os
print(os.path.getsize(r'os模块.py'))

image

sys模块

"""主要是跟python解释器打交道"""
import sys
# 1.列举当前执行文件所在的sys.path
print(sys.path)

# 2.获取python解释器默认最大递归深度
print(sys.getrecursionlimit()) 
# 1000

# 3.修改python解释器默认最大递归深度
sys.setrecursionlimit(2000)

# 4.获取解释器版本信息
print(sys.version)
# 3.9.0 (tags/v3.9.0:9cf6752, Oct  5 2020, 15:34:40) [MSC v.1927 64 bit (AMD64)]

# 5.平台信息
print(sys.platform)
# win32


"""
 cmd终端可以使用windows+r并输入cmd唤起
 也可以在pycharm直接使用快捷方式Terminal
  模拟cmd并自动切换到当前执行文件所在的路径下
"""
res = sys.argv
if len(res) != 3:
    print('执行命令缺少了用户名或密码')
else:
    username = res[1]
    password = res[2]
    if username == 'jason' and password == '123':
        print('jason您好 文件正常执行')
    else:
        print('您不是jason无权执行该文件')

json模块

1.json格式数据是不同编程语言之间的数据交换的媒介

image

2.json格式数据的具体特征
"""
	 数据是基于网络传输肯定是二进制格式化
     在Python中bytes类型的数据可以直接看成二进制数据
     但是只有字符串可以转成bytes类型
"""
# 双引号是json格式数据独有的标志符号
import json
d = {'name':'moon','pwd':123}
print(d,type(d))
res = json.dumps(d)
print(res,type(res))
print(str(d),type(str(d)))
# 就算把数据类型转换成字符串,也还是单引号

image

3.json相关操作
	针对数据
    json.dumps() # 序列化
    json.loads() # 反序列化

import json
d = {'name':'moon','pwd':123}
res = json.dumps(d)  # dumps 序列化,将python数据类型转换成json格式字符串
print(res,type(res))

res1 = json.loads(res) # loads,反序列化将json格式字符串转换成对应的数据类型
print(res1,type(res1))


针对文件
    json.dump()
    json.load()
"""
如果json模块需要配合文件一起使用的话 有固定的方法
json.dump()
    将其他数据类型直接写入文件(自动转json格式字符串)
json.load()
    将文件数据直接转成对应的数据类型(自动反序列化)
"""   

json模块实战

用户登录注册功能
import os
import json

# 注册功能
# 1.获取执行文件所在的目录路径
base_dir = os.path.dirname(__file__)  # E:\线下作业\pythonProject\模块练习
# 2.拼接出db目录的路径
db_dir = os.path.join(base_dir,'db')  # E:\线下作业\pythonProject\模块练习\db
# 3.创建db目录
if not os.path.isdir(db_dir):
    os.mkdir(db_dir)
# 4.获取用户数据
username = input('请输入用户名:').strip()
password = input('请输入密码:').strip()
# 4.1判断用户名是否已存在
user_file_path = os.path.join(db_dir,f'{username}.json')
# 5.构造字典
user_dict = {
    '姓名':username,
    '密码':password,
    'account':1000,
    'shop_car':[]
}
# 6.拼接存储用户数据的文件路径
user_file_path = os.path.join(db_dir,f'{username}.json')
# E:\线下作业\pythonProject\模块练习\db\qwd.json
# 7.写入文件数据
with open(user_file_path,'w',encoding='utf8')as f:
    json.dump(user_dict,f)
username = input('请输入用户名:').strip()
# 1.拼接上述用户名组成的文件路径
target_user_file_path = os.path.join(db_dir,f'{username}.json')
if not os.path.isfile(target_user_file_path):
    print('用户不存在')
else:
    password = input('请输入密码:').strip()
    # 2.获取用户真实数据字典
    with open(target_user_file_path,'r',encoding='utf8')as f:
        real_user_dict = json.load(f)
        if password == real_user_dict.get('password'):
            print('登陆成功')
        else:
            print('密码错误')
posted @ 2022-10-20 21:13  Super小赵  阅读(58)  评论(0编辑  收藏  举报
****************************************** 页脚Html代码 ******************************************