os模块和json模块

今日内容详细

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

os模块

主要用于操作系统

1. 创建文件夹 目录 也就是包 可以和目录规范配合使用
import os
# os.mkdir(r'new.file_2')  # mkdir 在此目录下新建一个文件夹 无法在创建文件夹里面创键文件
#os.makedirs(r'new.file_1')
# os.makedirs(r'new.flie_1/start.py')# makedirs支持多级创建
# os.makedirs(r'new.flie_3/oss.txt')
2. 删除文件夹
# os.rmdir(r'new.file_2')   # 删除单集目录
# os.rmdir(r'new.flie_1/start.py') # 也可以去指定
#os.removedirs('new.flie_1')   # 单级删除没问题
# os.removedirs(r'D:\pythonProject1\new.flie_3\oss.txt') # 用绝对地址进行指定删除到
3. 查看路径途径下的文件名称
# os.listdir()  # 用于检查当前文件夹格式
# print(os.listdir()) # 检查当前文件夹下文件名称
# print(os.listdir('D:/'))  #  还可以用来检查其他文件下的文件名称
#os.makedirs(r'a/cdk/www.')
#os.removedirs(r'a/cdk/www.')
#os.mkdir(r'ooo')
# os.rmdir(r'ooo')
# with open('a.txt','w',encoding='utf8') as f:
#     f.write('aaaa')
# os.remove(r'a.txt')   不能用于删除文件夹
# os.rename(r'a.txt', r'aaa.txt')
4. 获取当前路径、切换路径
# os.getcwd() #获取当前路径
# print(os.getcwd())
# os.chdir(r'D:/pythonProject') # 更改路径
# print(os.chdir(r'/pythonProject'))  # None
5.软件开发目录规范 启动脚本兼容性操作
#print(os.path.dirname(__file__))  # 动态获取路径
#os.path.dirname(os.path.dirname(__file__)) # 路径的上一层
#abspath(__file__)  # 当前文件路径的获取
#print(os.path.abspath(__file__))
7. 判断文件是否纯在
# print(os.path.exists(r'azz.py')) 判断文件是否存在在文件路径下
#os.path.isdir # 判断文件是否是一个文件夹
#print(os.path.isdir('3.28.py'))
#os.path.isfile  # 判断文件是否是一个文件
#print(os.path.isfile('3.28.py')) 
8.拼接路径
A = 'sos'
B = 'help'
print(A+'/'+B)   # 第一种方法兼容性差
res = os.path.join(A,B) # 能够自动识别当前操作系统的分隔符
print(res)
9. 获取字节大小
print(os.path.getsize(r'12.py'))

sys模块

主要用于和python解释器打交道

import sys
1.列举当前执行文件所在的sys.path
# print(sys.path)
2. 获取当前解释器版本信息
# print(sys.version)  3.6.8 (tags/v3.6.8:3c6b436a57, Dec 24 2018, 00:16:47) [MSC v.1916 64 bit (AMD64)]
3. 获取平台信息
#print(sys.platform)  win32  
4. 自定义命令操作
#print(sys.argv)

json模块

json是一个序列化模块 主要用于跨语言传输数据

json格式数据的具体特征
	结论1中有一个小细节>>>:数据基于网络传输肯定是二进制格式
import json
# d = {'username':'jason','pwd':123}
# print(d, type(d))  # {'username': 'jason', 'pwd': 123} <class 'dict'>
# res = json.dumps(d)
# print(res, type(res))  # {"username": "jason", "pwd": 123} <class 'str'>
# print(str(d),type(str(d)))  # {'username': 'jason', 'pwd': 123} <class 'str'>
'''双引号是json格式数据独有的标志符号'''
# d = {"username":"jason","pwd":123}
# print(d)  # {'username': 'jason', 'pwd': 123}  不是
res1 = '{"username":"jason","pwd":123}'
print(res1)  # {"username":"jason","pwd":123}  算json格式
具体操作
d = {'username': 'jason', 'pwd': 123}
# with open(r's.txt','w',encoding='utf8') as f:
#     f.writelines(json.dumps(d))
#     json.dump(d,f)
#     res2 = f.write(json.dumps(d))
#     print(res2,type(res2))
with open(r's.txt','r',encoding='utf8') as f:
    data = f.read()
    data2 = json.loads(data)
    print(data2,type(data2))
json.dumps()        序列化
    将python数据类型转换成json格式字符串
json.loads()        反序列化
    将json格式字符串转换成对应的数据类
json.dump()将其他数据类型直接写入文件
json.load()将文件数据直接转成对应的数据类型
python只支持以下方法
 +-------------------+---------------+
    | Python            | JSON          |
    +===================+===============+
    | dict              | object        |
    +-------------------+---------------+
    | list, tuple       | array         |
    +-------------------+---------------+
    | str               | string        |
    +-------------------+---------------+
    | int, float        | number        |
    +-------------------+---------------+
    | True              | true          |
    +-------------------+---------------+
    | False             | false         |
    +-------------------+---------------+
    | None              | null          |
    +-------------------+---------------+
pickle模块

​ 因为它不支持跨语言传输 只能识别python代码

subprocess模块
import subprocess
# ls在终端的意思就是查看当前路径下所有的文件名称
res = subprocess.Popen('ls',
                       shell=True,
                       stdout=subprocess.PIPE,
                       stderr=subprocess.PIPE
                       )
print('stdout',res.stdout.read().decode('utf8'))  # 获取正确命令执行之后的结果
print('stderr',res.stderr.read().decode('utf8'))  # 获取错误命令执行之后的结果
"""
该模块可以实现远程操作其他计算机的功能
    动态获取命令执行并返回结果
        eg:类似于Xshell软件的功能
posted on 2022-03-30 22:37  等秋叶的七月  阅读(167)  评论(0)    收藏  举报