python 的一些使用笔记

1、PyArmor  这个 扩展 可以将脚本语言 python进行加密 和 jave的编译差不多吧 可是 这个 使用起来很不方便 例如 我使用的flask框架 进行加密的话  我每个 文件夹都需要手动去加密
PyArmor官方文档  https://pyarmor.readthedocs.io/zh/latest/

2、
def list_to_tree(dts, pk='id', pid='pid', child='_sub', root=0):
"""
把数据结构:
[
{'id': 2, 'pid': 0, 'name': '水果'},
{'id': 5, 'pid': 0, 'name': '主食'},
{'id': 3, 'pid': 2, 'name': '西瓜'},
{'id': 4, 'pid': 2, 'name': '菠萝'},
{'id': 6, 'pid': 5, 'name': '大米'},
{'id': 7, 'pid': 5, 'name': '面粉'},
{'id': 8, 'pid': 6, 'name': '东北大米'},
{'id': 9, 'pid': 6, 'name': '泰国大米'},
]
转化为树状:
[
{
'id': 2,
'pid': 0,
'name': '水果',
'_sub': [
{'id': 3, 'pid': 2, 'name': '西瓜'},
{'id': 4, 'pid': 2, 'name': '菠萝'},
]
},
{
'id': 5,
'pid': 0,
'name': '主食',
'_sub': [
{
'id': 7,
'pid': 5,
'name': '面粉'
},
{
'id': 6,
'pid': 5,
'name': '大米',
'_sub': [
{'id': 8, 'pid': 6, 'name': '东北大米'},
{'id': 9, 'pid': 6, 'name': '泰国大米'},
]
},
]
}
]
"""
tree = []
refer = {}
key = 0
for data in dts:
refer[data[pk]] = dts[key]
key += 1
key = 0
for data in dts:
parent_id = data[pid]
if root == parent_id:
tree.append(dts[key])
else:
if parent_id in refer.keys():
if child not in refer[parent_id].keys():
refer[parent_id][child] = []
refer[parent_id][child].append(dts[key])
key += 1
return tree

自己定义的无限树方法用于权限开发

3、
list转化为map 解决python中list无法 进行 json输出的问题
def list_to_map(log_result):
    import numpy as np
keys = [str(x) for x in np.arange(len(log_result))]
return dict(zip(keys, log_result))

4、
def async1(f):
def wrapper(*args, **kwargs):
from threading import Thread
thr = Thread(target=f, args=args, kwargs=kwargs)
thr.start()

return wrapper
此方法 进行 python的异步处理
async 在 3版本以上为关键字 不可以再重新定义

5、
psutil 这个扩展 可以进行 服务器的操作 

ps:python 伟大啊 只写了一点感觉强大无比 但是只适合做脚本语言 个人感觉
 
posted @ 2020-03-11 15:09  蒋华  阅读(301)  评论(0编辑  收藏  举报