一些小方法【二】

本文为博主原创,未经授权,严禁转载及使用。
本文链接:https://blog.csdn.net/zyooooxie/article/details/127978957

之前写过一篇 介绍自己常用的方法, https://blog.csdn.net/zyooooxie/article/details/104494716 ,再做些分享。

【实际这篇博客推迟发布N个月】

个人博客:https://blog.csdn.net/zyooooxie

【以下所有内容仅为个人项目经历,如有不同,纯属正常】

公共、全局变量

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""gl_datetime_format = '%Y-%m-%d %H:%M:%S'gl_date_format = '%Y-%m-%d'
gl_date_format_2 = '%Y-%m'gl_time_format = '%H:%M:%S'one_choice_true_false = random.getrandbits(1)

消耗时间装饰器

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""def spend_time_deco(func):def inner(*args, **kwargs):Log.info('')before = datetime.datetime.now()Log.info(before)res = func(*args, **kwargs)after = datetime.datetime.now()Log.info(after)spend = after - beforeLog.info(f'{func.__name__} 实际花费:{spend.total_seconds()}')Log.info('')return resreturn inner

读取配置文件

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""def read_ini(ini_path: str = 'db.ini'):"""读取配置文件:param ini_path:默认是数据库的配置文件:return:"""if os.path.isfile(ini_path):config = ConfigParser()config.read(ini_path, encoding='UTF-8')return {cf: config.items(cf) for cf in config.sections()}

更新 传参dict

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""def update_dict(local_dict: dict, params_name, params_value, body_dict):""":param local_dict::param params_name::param params_value::param body_dict::return:"""if local_dict.get(params_name) is not None:body_dict.update({params_name: params_value})
url = 'https://blog.csdn.net/zyooooxie'Log.info(locals())body = dict()update_dict(locals(), 'xie', xie, body)update_dict(locals(), 'blog', blog, body)req_dict = send_post_request_json(url=join_url(url), add_header=gl_header,params_dict=body)res = req_dict.get('obj')Log.info(res)

比较list、dict的元素

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""def change_to_dict(data: Union[dict, list]) -> dict:""":param data::return:"""if not isinstance(data, dict):Log.debug('手动转换类型')try:data_dict = dict.fromkeys(data)except Exception as e:Log.debug(e.args)Log.debug(traceback.format_exc())data_dict = dict.fromkeys([str(d) for d in data])else:data_dict = datareturn data_dictdef compare_dict_key(dict1: Union[dict, list], dict2: Union[dict, list], assert_0: bool = False) -> list:""":param dict1::param dict2::param assert_0::return:"""dict1_ = change_to_dict(dict1)Log.error(len(dict1_))dict2_ = change_to_dict(dict2)Log.error(len(dict2_))not_in_list = list()for key in dict1_:if key not in dict2_:not_in_list.append(key)Log.error(f'在{id(dict1)},不在{id(dict2)}的数据 总共:{len(not_in_list)}条')Log.error(not_in_list)if assert_0:assert len(not_in_list) == 0return not_in_listdef compare_dict_key_value(dict1: dict, dict2: dict) -> dict:""":param dict1::param dict2::return:"""not_in_dict = dict()for key, value in dict1.items():if key not in dict2 or value != dict2.get(key):not_in_dict.update({key: value})Log.error(f'在{id(dict1)},不在{id(dict2)}的数据 总共:{len(not_in_dict)}条')Log.error(not_in_dict)return not_in_dict

计算,获取date、time

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""def get_newDate_newDateTime(old_date_time: str = None, **kwargs):""":param old_date_time::param kwargs::return:"""# Log.info([i for i in datetime.timedelta.__dict__ if i.startswith('__') is False])Log.info(old_date_time)for k in kwargs.keys():assert k in ['days', 'seconds', 'minutes', 'hours', 'weeks']if not old_date_time:# 没传,取 当前的datetimeodt = datetime.datetime.now()else:assert old_date_time.find(':') != -1assert old_date_time.find('-') != -1odt = datetime.datetime.strptime(old_date_time, gl_datetime_format)dt = odt + datetime.timedelta(**kwargs)Log.info(f'{dt}, {type(dt)}')timestamp_ = int(time.mktime(odt.timetuple()) * 1000)Log.info(f'{timestamp_}, {type(timestamp_)}')return odt, timestamp_

写入txt

"""
@blog: https://blog.csdn.net/zyooooxie
@qq: 153132336
@email: zyooooxie@gmail.com
"""def write_txt(data: Union[str, list]):"""写入文件(可一条一条写入,也可一次性全部写入):param data:单独一条记录str   or  全部记录list:return:"""file = r'D:\zyooooxie\param_{}.txt'.format(random.randint(1, 99999))Log.info(file)with open(file, mode='a', encoding='utf-8') as f:if isinstance(data, str):f.write(''.join([data, '\n']))elif isinstance(data, list):Log.info(len(data))w_data = list()for d in data:if type(d) == str:ele = delse:ele = ','.join([str(i) for i in d])w_data.append(''.join([ele, '\n']))f.writelines(w_data)

本文链接:https://blog.csdn.net/zyooooxie/article/details/127978957

个人博客 https://blog.csdn.net/zyooooxie

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Portainer Docker容器可视化管理平台实践

Portainer Docker容器可视化管理平台实践 引安装登录Remote ENV 实践 引 平常用docker命令操作比较多,找了一款docker可视化工具,方便快速预览和批量操作,不想一行一行敲的时候,可以偷偷懒。Portainer试用了一下,安装…

【精选】PHPjava 序列化和反序列化漏洞

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋 🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步…

深度学习目标检测训练集、验证集、测试集各占比例一般是多少?

问题描述: 深度学习目标检测训练集、验证集、测试集各占比例一般是多少? 问题解答: 划分深度学习目标检测的训练集(training set)、验证集(validation set)和测试集(test set&…

一篇文章认识领域驱动设计(DDD),实现领域建模解决复杂业务问题

目录 一、领域驱动设计(DDD)学习路线 二、领域驱动设计的基本概念和原则 1、DDD的基本概念 2、DDD原则 三、如何实现领域建模,解决复杂业务问题 四、微服务与DDD的关系,DDD落地到微服务的设计原则 1、微服务与DDD的关系 2、DDD落地到微服务的设计…

linux的安装配置

文章目录 1.centos7安装2.如何进行一个网络的开启3.客户端Xshell和Xftp的一个使用4.换源 1.centos7安装 1.我是在虚拟机里面重装了一个liunx系统,首先我们新建一个虚拟机 2.前面东西都不需要我们进行一个选择,到图中的这一步我们选择一个liunx,版本的话我们选择一个…

网络防御保护1

网络防御保护 第一章 网络安全概述 网络安全(Cyber Security)是指网络系统的硬件、软件及其系统中的数据受到保护,不因偶然的或者恶意的原因而遭受到破坏、更改、泄露,系统连续可靠正常地运行,网络服务不中断 随着数…

Midjourney基础 | 使用流程 注册,基础文生图,图的放大微调,保存

文章目录 1 使用流程2 生成自己的第一张图3 图的放大,微调3.1 放大3.2 微调变化 4 图的保存 Midjourney是依托于Discord的,但我也是通过Midjourney才了解的Discord 维基百科说~~Discord是一款专为社群设计的免费网络实时通话,主要针对游戏玩家…

力扣203-移除链表元素

移除链表元素 题目链接 解题思路: 删除链表中的指定节点 1.首先进行特判,如果链表为空,直接返回 2.判断头节点是否为删除的节点,如果是,则删除头节点 3.遍历整条链表,如果碰见待删除的节点,直接…

JavaWeb,会话管理的学习

会话管理概述 无状态协议 无状态就是不保存状态,HTTP就是无状态协议,HTTP协议自身不会对请求和响应之间的通信状态进行保存,也就是说,在HTTP协议这个级别,协议对于发送过的请求或者响应都不做持久化处理。 会话管理…

请你来了解一下Mysql-InnoDB中事务的两段式提交

欢迎订阅专栏,了解更多Mysql的硬核知识点,原创不易,求打赏 ACID:事务的四个特性 A:原子性 原子性表示把一个事务中所有的操作视为一个整体,要么全部成功,要么全部失败,是事务模型区…

Flink处理函数(2)—— 按键分区处理函数

按键分区处理函数(KeyedProcessFunction):先进行分区,然后定义处理操作 1.定时器(Timer)和定时服务(TimerService) 定时器(timers)是处理函数中进行时间相关…

LeetCode_11_中等_盛最多水的容器

文章目录 1. 题目2. 思路及代码实现(Python)2.1 双指针 1. 题目 给定一个长度为 n n n 的整数数组 h e i g h t height height 。有 n n n 条垂线,第 i i i 条线的两个端点是 ( i , 0 ) (i, 0) (i,0) 和 ( i , h e i g h t [ i ] ) (i…

联想M7268、7208打印机加粉清零方法

联想小新M7268激光一体机基本参数 产品类型 黑白激光多功能商用一体机 涵盖功能 打印/复印/扫描 最大处理幅面 A4 耗材类型 鼓粉分离 耗材容量 硒鼓LD2268:10000页,墨粉LT2268:1000页 双面功能 手…

Linux常用的管线命令(pipe)

只介绍命令和对应的功能,详细用法可针对性的自行搜索 管线命令基本上都是对文本进行截取的功能,据我观察,他们基本上会以行为单位。 以下命令都可以用在管道上,但是有些也可以单独使用。 以下演示的文件是用last | head -n 12 >…

MySQL语句 | 使用BETWEEN对数据结果过滤及BETWEEN对边界值的处理

在MySQL中,BETWEEN是一个用于过滤范围的条件操作符,可以用来筛选在指定范围内(左闭右闭)的数据。 举个例子 SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2;其中,column_name是…

C#partial关键字(分布类)

在 C# 中,partial 关键字用于将一个类、结构或接口的定义分为多个部分,这些部分可以在同一个命名空间中的多个文件中进行编写。这种分割使得可以将一个大型的实体定义分布在多个文件中,以便更好地组织和管理代码。 以下是一个示例&#xff0…

C语言学习(4)—— 预处理指令和宏定义

一、预处理指令 预处理指令是以#号开头的代码行,#号必须是该行除了任何空白字符外的第一个字符。# 后是指令关键字,在关键字和 # 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行编译之前对…

你知道Mysql的架构吗?

msyql分为server曾和存储引擎层 server层包括了连接器(管理连接,权限验证)、查询缓存(命中直接返回结果)、分析器(词法分析,语法分析)、优化器(执行计划生成,索引选择)、…

java.lang.IllegalArgumentException: When allowCredentials is true

1.遇到的错误 java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a…

Vue前端规范【二】

在大多数项目中,这些规则被发现可以提高可读性和/或开发人员体验。如果你违反了它们,你的代码仍然会运行,但违规应该是罕见的,而且有充分的理由。 组件文件 每当构建系统可用于连接文件时,每个组件都应位于其自己的文…