os模块
import os
# 创建文件夹
os.mkdir(r'aaa') # 创建单层目录 文件已存在时无法继续创建
os.makedirs(r'bbb/ccc/ddd') # 创建多级目录
# 删除目录
os.rmdir(r'aaa') # 删除单级的空目录
os.removedirs(r'bbb/ccc/ddd') # 删除单级目录,如果外层是空的则继续删除
# 查看文件路径下的所有文件名称
print(os.listdir(r'E:\pythonProject2\day022'))
print(os.listdir(r'C:\Users\Administrator\Desktop'))
# 删除文件、重命名文件
os.removedirs(r'aaa')
os.rename(r'aaa', r'aaaaa')
# 获取文件路径,切换文件路径
print(os.getcwd()) # 获取执行文件所在的路径
os.chdir(r'bbb/ccc/ddd') # 改写文件所在路径
print(os.getcwd())
# 软件开发目录规范,启动脚本兼容性
os.path.dirname(__file__) # 动态的获取当前文件所在的路径
os.path.dirname(os.path.dirname(__file__)) # 嵌套一层就是往上一级路径走一次
print(os.path.dirname(__file__)) # E:/pythonProject2/day022
print(os.path.dirname(os.path.dirname(__file__))) # E:/pythonProject2
# 判断文件、文件夹是否存在
print(os.path.exists(r'aaaaa')) # 判断所给路径是否存在
print(os.path.exists(r'E:\pythonProject2\day022\bbb\ccc'))
print(os.path.exists(r'E:\pythonProject2\day022\bbb\ddd'))
print(os.path.isdir(r'aaaaa')) # 判断路径是否是文件夹
print(os.path.isdir(r'01.作业讲解.py')) # 判断路径是否是文件夹
print(os.path.isfile(r'aaa'))
print(os.path.isfile(r'01.作业讲解.py')) # 判断路径是否是文件
# 文件路径拼接
res ='aaaaa'+'/'+'bbb' # 加号兼容性较差
print(res)
res = os.path.join('aaaaa', 'bbb') # 使用join拼接路径会直接识别系统所需的分隔符
print(res)
# 文件大小
print(os.path.getsize(r'01.作业讲解.py')) # 结果为字节数
sys模块
import sys
print(sys.path) # 获取文件所在的sys.path
print(sys.version) # 获取解释器版本
print(sys.platform) # 获取平台信息
print(sys.argv) # 自定义命令
'''
if len(sys.argv) == 3:
username = sys.argv(1)
password = sys.argv(2)
if username == 'oliver'and password == '123':
print('yes')
else:
print('no')
else:
print('输入用户名,不能多写或漏写')
'''
json模块(序列化)
import json
dic = {'name1': 'oliver', 'name2': 'kevin', 'name3': 'jerry'}
print(dic, '\n', type(dic))
res = json.dumps(dic) # 将字典转换成json格式
print(res, '\n', type(res)) # {"name1": "oliver", "name2": "kevin", "name3": "jerry"} <class 'str'>
'''
json格式数据是字符串类型,并且双引号是字符串的标志符号
'''
print(str(dic), '\n', type(str(dic))) # {'name1': 'oliver', 'name2': 'kevin', 'name3': 'jerry'} <class 'str'>
dic = {"name1": "oliver", "name2": "kevin"}
print(dic, type(dic))
dic = '{"name1": "oliver", "name2": "kevin"}'
print(dic, type(dic)) # 算是json格式
dic = {'name1': 'kevin', 'name2': 'kevin'}
res = json.dumps(dic) # 将dic转换为(序列化)json格式
str1 = res.encode('utf8') # 对res进行utf8编码
print(str1)
json_str = str1.decode('utf8') # 解码之后的格式首先是json格式数据
print(json_str, type(json_str))
res1 = json.loads(json_str) # 然后将数据从json格式转换为(反序列化)原格式
print(res1, type(res1))
'''
序列化:将python数据类型转换为json格式
反序列化:将json格式数据转换为对应数据类型
json模块配合文件使用时
json.dump() # 自动将数据转为json格式,然后写入文件(自动序列化)
json.load() # 将文件里的数据直接转为其他数据取出(自动反序列化)
'''
支持序列化的数据类型
python数据类型 |
json对应类型 |
dict |
object |
list |
array |
tuple |
array |
str |
string |
int |
number |
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'))