Day21
总结
os模块
要对大量文件和大量路径进行操作,这就依赖于os模块
import os
# 1.创建目录(文件夹)
os.mkdir(r'a') # 使用相对路径 在当前执行文件所在的路径下创建一个a文件夹
# os.mkdir(r'b/c') # 报错 mkdir只能创建单级目录
os.makedirs(r'c') # makedirs可以创建单级目录
os.makedirs(r'b/c/d') # makedirs支持创建多级目录
# 2.删除目录(文件夹)
os.rmdir(r'a') # 可以删除单级目录
os.rmdir(r'b') # 只能删空的单级目录
os.removedirs(r'c') # 可以删除单级目录
# 3.查看某个路径下所有的文件名称(文件、文件夹)
print(os.listdir())
# 4.删除文件、重命名文件
os.remove(r'a.txt')
os.rename(r'a.txt', r'b.txt')
# 5.获取当前路径、切换路径
print(os.getcwd())
os.chdir(r'c:')
print(os.getcwd())
# 6.软件开发目录规范 启动脚本兼容性操作
os.path.dirname(__file__) # 动态获取当前执行文件所在的绝对路径
res = os.path.dirname(os.path.dirname(__file__)) # 每嵌套一层就是往上切换一层 D:/
print(os.path.abspath(__file__)) # 动态获取执行文件自身的路径 D:\pythonDay01\day21.py
# 7.判断文件是否存在
print(os.path.exists(r'day21.py')) # True 判断所给的路径是否存在
print(os.path.isdir(r'c')) # True 判断路径是否是一个文件夹
print(os.path.isdir(r'day21.py')) # False 判断路径是否是一个文件夹
print(os.path.isfile(r'day21.py')) # False 判断路径是否是一个文件
print(os.path.isfile(r'c')) # False 判断路径是否是一个文件
# 8.拼接路径
base_dir = 'c'
exe_dir = 'day21.py'
res = os.path.join(base_dir, exe_dir) # 自动识别当前操作系统的分隔符
print(res) # c\day21.py
# 9.获取文件大小(字节 bytes)
print(os.path.getsize(r'day21.py')) # 1843
sys模块
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是用来进行语言之间的数据交换的,它可以在任意语言之间进行
'''
不同语言之间无法直接进行数据交互
eg:
{'name':'jason'}在python中是字曲,但是其他语言不叫字典,json可以将字典转换成json格式,再将json格式的数据发给js,js通过json其他操作转成能够识别的数据类型{'name':'jason}自定义对象
数据基于网络传输肯定是二进制格式,在python中只有字符串可以转成bytes类型(编码encode()),
所以json格式数据 本质应该属于字符串类型
'''
json.dumps() 序列化
将python数据类型转换成json格式字符串
json.loads() 反序列化
将json格式字符串转换成对应的数据类型
import json
d = {'name':'jason','age':20}
print(d, type(d)) # {'name': 'jason', 'age': 20} <class 'dict'>
res = json.dumps(d)
print(res, type(res)) # {"name": "jason", "age": 20} <class 'str'>
res = json.loads(res)
print(res, type(res)) # {'name': 'jason', 'age': 20} <class 'dict'>
# 不是所有数据类型都支持序列化
"""
+-------------------+---------------+
| Python | JSON |
+===================+===============+
| dict | object |
+-------------------+---------------+
| list, tuple | array |
+-------------------+---------------+
| str | string |
+-------------------+---------------+
| int, float | number |
+-------------------+---------------+
| True | true |
+-------------------+---------------+
| False | false |
+-------------------+---------------+
| None | null |
+-------------------+---------------+
"""
subprocess模块
import subprocess
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')) # 获取错误命令执行之后的结果
# ls在终端的是查看当前路径下所有的文件名
# subprocess模块可以实现远程操作其他计算机的功能
学了好多模块有点记不过来
: