os/json/jsonpath三个模块
OS 模块
-
路径处理:
-
基本方法
os.getcwd() # 获取当前工作目录路径 os.path.exist(path) # 判断该path是否存在 os.path.join(path1,path2) # 路径拼接 os.chdir(dir_path) # 切换到path目录下 os.getatime(path) # 获取该文件/目录最后的存取时间 os.getctime(path) # 获取该文件/目录的创建时间 os.getmtime(path) # 获取该文件/目录最后的修改时间 os.path.split(path) # 将path分割成目录和文件名二元组返回 os.path.split('/Users/hui/Documents') ('/Users/hui', 'Documents')
-
获取绝对路径
absolute_path = os.path.abspath(__file__) print(absolute_path) import inspect absolute_path = inspect.getfile(inspect.currentframe()) print(absolute_path)
-
-
文件处理
-
基本方法
os.listdir(dir_path) # 获取目录路径中的所有的文件,包括隐藏文件 os.path.isfile(path) # 判断是否是文件,路径不存在/不是文件路径,均返回false
-
获取 文件/目录 所在目录名称
os.path.dirname(path) os.path.dirname('/Users/hui/Documents') '/Users/hui'
-
分离文件拓展名
os.path.splitext(path) # 分离文件名与扩展名, 返回对象是一个tuple path_01 = 'E:\STH\Foobar2000\install.log' path_02 = 'E:\STH\Foobar2000' res_01 = os.path.splitext(path_01) res_02 = os.path.splitext(path_02) print(res_01) print(res_02) ('E:\\STH\\Foobar2000\\install', '.log') ('E:\\STH\\Foobar2000', '')
-
删除文件
if os.path.exists(file_path): shutil.remove(file_path) # 删除文件专用命令
-
-
目录处理
-
基本方法
os.path.isdir(path) # 判断是否是目录,路径不存在/不是目录路径,均返回false
-
删除目录
if os.path.isdir(dir_path): shutil.rmtree(dir_path) # 删除目录专用命令,空/非空均可删除, 可以递归删除
-
-
执行命令
-
方式一:
os.system('bash command') # 运行shell命令, 直接显示
-
json模块
-
简介
- josn字符串 通常用于web客户端与服务器之间数据交换,即字符串类型与python基本数据类型之间转换。
-
两种常见的形式
json_dict '{"a":"b", "c":"d"}' json_list '[1,2,3,4,5]'
-
常用python对象与json字符串的转换方法:
-
json.loads(str_obj) # 用loads将json字符串转为python对象
demo = '{"name": "jon", "age": 17, "city": "上海"}' json.loads(demo) type(json.loads(demo)) {'name': 'jon', 'age': 17, 'city': '上海'} <class 'dict'>
-
Json.dumps(obj) # 用dumps将python对象编码成json字符串
demo = {'name': 'jon', 'age': 17, 'city': '上海'} json.dumps(demo) {"name": "jon", "age": 17, "city": "\u4e0a\u6d77"} # 参数:indent 缩进, ensure_asii 正常显示中文 json.dumps(demo, indent=2, ensure_ascii=False) { "name": "jon", "age": 17, "city": "上海" }
-
jsonpath模块
- 特点:
- 接收的对象:dict
- 返回的对象:list
- .. 是模糊匹配
from jsonpath import jsonpath
dict_obj = {
"error_code": 0,
"stu_info": [
{
"id": 314,
"name": "矿泉水",
"sex": "男",
"age": 18,
"addr": "北京市昌平区",
"grade": "摩羯座",
"phone": "18317155663",
"gold": 100,
"cars": [
{"car1": "bmw"},
{"car2": "ben-z"},
]
}
]
}
jsonpath(dict_obj, '$..car2') # 模糊匹配
['ben-z']
result = jsonpath(dict_obj, '$.stu_info') # 取到stu_info这里的所有内容
[[{'id': 314, 'name': '矿泉水', 'sex': '男', 'age': 18, 'addr': '北京市昌平区', 'grade': '摩羯座', 'phone': '18317155663', 'gold': 100, 'cars': [{'car1': 'bmw'}, {'car2': 'ben-z'}]}]]
result = jsonpath(dict_obj, '$.stu_info[0]') # 取到stu_info里的第1个元素
[{'id': 314, 'name': '矿泉水', 'sex': '男', 'age': 18, 'addr': '北京市昌平区', 'grade': '摩羯座', 'phone': '18317155663', 'gold': 100, 'cars': [{'car1': 'bmw'}, {'car2': 'ben-z'}]}]
result = jsonpath(dict_obj, '$.stu_info[0].id') # 取到stu_info里的第1个元素中的id
[314]