Python基础19

今日内容概要

  • os模块
  • sys模块
  • json模块

今日内容详细

os模块

os模块主要与代码运行所在的操作系统打交道

import os
1.创建目录(文件夹)
os.mkdir(r'a')  # 创建单级目录 括号内填写直接填写目录名会在执行文件所在的路径下创建目录
os.mkdir(r'F:\test\b')   # 填写绝对路径 就会在对应路径下创建
os.makedirs(r'a\b\c') # 创建多级目录 
os.makedirs(r'd')   # 也可以创建单级目录
2.删除目录(文件夹)
os.rmdir(r'a')  # 删除单级目录  且目录为空
os.rmdir(r'a\b\c')  # 不能一次性删除多级目录
os.removedirs(r'a\b\c')  # 可以删除多级目录  且所有目录为空
3.列举指定路径下内容名称
os.listdir()  # 括号内不填 默认显示执行文件目录下的内容
4.删除/重命名文件
os.remove(r'a.txt')  # 删除文件
os.rename(r'a.txt', r'b.txt')  # 重命名文件
5.获取/切换当前工作目录
os.getcwd()  # 获取当前工作目录
os.chdir('..')  # 切换到上一级目录
6.动态获取项目根路径
os.path.abspath(__file__)  # 获取执行文件的绝对路径
os.path.dirname(__file__)  # 获取执行文件所在目录的绝对路径
7.判断路径是否存在(文件,目录)
os.path.exists()  # 判断文件或者目录是否存在
os.path.isfile()  # 判断是否是文件
os.path.isdir()   # 判断是否是目录
8.路径拼接
os.path.join()
'''涉及到路径拼接一定不要自己做 因为不同的操作系统路径分隔符不一样'''
9.获取文件大小
os.path.getsize()  # 单位是字节

sys模块

sys模块是与python解释器交互的一个接口。sys 模块提供了许多函数和变量来处理 Python 运行时环境的不同部分

import sys
sys.path  # 获取执行文件的sys.path
sys.getrecursionlimit()  # 获取python解释器默认的最大递归深度
sys.setrecursionlimit()  # 修改python解释器默认的最大递归深度
sys.version  # 获取python解释器的版本信息
sys.platform  # 获取当前系统平台
sys.argv  # 实现从程序的外部向程序传递参数 返回的是一个列表, 第一个元素是程序文件名, 第二个元素是程序外部传入的参数
'''小案例'''
res = sys.argv
if len(res) != 3:
    print('缺少用户名密码')
else:
    username = res[1]
    pwd = res[2]
    if username == 'jason' and pwd == '123':
        print('执行成功')
    else:
        print('用户名或密码错误')

json模块

json模块也称为序列化模块 序列化可以打破语言限制实现不同编程语言之间数据交互

json格式数据的形式
	字符串类型并且引号都是双引号
 
json相关操作
	针对数据
    json.dumps()  # 把特定的对象序列化处理为字符串
    json.loads()  # 反序列化 将json数据转换为外形相似的对应数据类型 

 	针对文件
    json.dump()  # 将序列化的字符串写入文件
    json.load()  # 将文件中的内容反序列化

作业

'''编写一个统计指定文件类型的脚本工具
 输入指定类型的文件后缀
     eg:.txt
 并给出一个具体路径 之后统计该类型文件在该文件下的个数
  ps:简单实现即可 无需优化'''

import os
suf = input('请输入要查找的后缀(加上点)').strip()
way = input('请输入路径').strip()
count = 0
if os.path.isdir(way):
    l1 = os.listdir(way)
    print(l1)
    for i in l1:
        if suf in i:
            count += 1
    print(f'总共有{count}个')
else:
    print('路径不存在')

'''编程小练习
 有一个目录文件下面有一堆文本文件
     eg:
      db目录
            J老师视频合集
            R老师视频合集
            C老师视频合集
            B老师视频合集
 文件内容自定义即可 要求循环打印出db目录下所有的文件名称让用户选择
  用户选择哪个文件就自动打开该文件并展示内容
  涉及到文件路径全部使用代码自动生成 不准直接拷贝当前计算机固定路径'''

import os
ml = os.path.dirname(__file__)
ml1 = os.path.join(ml, 'J老师视频合集')
ml2 = os.path.join(ml, 'R老师视频合集')
ml3 = os.path.join(ml, 'C老师视频合集')
l1 = [ml1, ml2, ml3]
for i in l1:
    if not os.path.isfile(i):
        with open(i, 'w', encoding='utf8') as f:
            f.write('性感老师,在线发牌')
all = os.listdir(ml)
while True:
    for i in all:
        print(i)
    choice = input('请输入要查看的文件名(q退出)>>>:').strip()
    if choice in all:
        file = os.path.join(ml, choice)
        with open(file, 'r', encoding='utf8') as f:
            print(f.read())
    elif choice == 'q':
        break
    else:
        print('请输入正确的文件名')
posted @ 2022-10-20 20:59  LZJJJ  阅读(33)  评论(0)    收藏  举报