
python
Neon_Light
这个作者很懒,什么都没留下…
展开
-
zabbix6自动化配置监控项监控GPU
官方提供的简单的脚本监控,在zabbix_agent2.d做相关配置就能实现,但是这个一个监控项需要写一个脚本,我需要监控的一个机器就有40+的监控项,不太方便。在GPU监控逻辑开发中发现,在自己的后端服务监控中也可以埋点到zabbix来做监控,然后在前端配置相关监控图标,感觉这个链路是通的,也挺方便,统计服务都省了。正常使用官方提供的监控项,可以监控机器的cpu / mem / desk / net 等等,但是没有监控到GPU,所以只能自己加监控项。然后在这三台机器都部署zabbix agent2,原创 2023-10-24 21:43:09 · 1441 阅读 · 0 评论 -
二分法查找 python实现
二分法查找:从有序集合a中找到具体值b所在位置原创 2023-06-07 22:10:06 · 239 阅读 · 0 评论 -
python py7zr 压缩解压 指定文件名、文件后缀
python使用py7zr解压/压缩 制定文件名文件类型原创 2022-10-14 18:07:30 · 4862 阅读 · 0 评论 -
python 异步协程的使用
消费流(kafka或者queue)的数据,使用python协程异步处理这些数据,提高python的并发性原创 2022-07-03 20:31:01 · 368 阅读 · 0 评论 -
logging.basicConfig设定log路径不生效
业务往log文件写log时想根据处理的时间自动生成log文件,但是进程不中断就不会生成新的log文件。from datetime import datetimeimport timeimport loggingclass Test(object): def __init__(self, in_time): if in_time: self.sinkTime = in_time else: self.sink原创 2021-08-27 18:10:59 · 707 阅读 · 0 评论 -
python Thread使用方法:主线程起子线程,无法回到主线程逻辑了
今天同事问了一个Python的Thread使用问题,他的程序起了一个多线程,确一直没能进到主进程,我看了一眼代码发现问题了下面看下他的原代码:当然是为了方便表述问题已经简化了业务逻辑具体有问题的代码from threading import Threadimport timedef fff(a): #业务逻辑这里是消费一个kafka,正常不会结束,相当于一直卡在sleep这里,到不了print('after',5,a) print(a) time.sleep(5) p原创 2021-08-23 18:50:32 · 1739 阅读 · 0 评论 -
try except 的错误类型捕获问题
关于 try catch的错误类型捕获,可以所有的except都捕获,使用Exception来处理,这时所有的错都会进如到err中,到except的流程仅仅对已知的报错类型进行捕获,比如 requests.exceptions.BaseHTTPError 其他的报错都不会被处理,为保持严谨就需要把所有的异常情况都拿出来分别处理,如果出现未知的错误类型就会导致During handling of the above exception, another exception occurred:的报错关原创 2021-08-16 10:52:47 · 1253 阅读 · 0 评论 -
[python]统计list中元素出现次数的几种方法
有一回对我说道,“你读过书么?”我略略点一点头。他说,“读过书,……我便考你一考。茴香豆的茴字,怎样写的?”我想,讨饭一样的人,也配考我么?便回过脸去,不再理会。孔乙己等了许久,很恳切的说道,“不能写罢?……我教给你,记着!这些字应该记着。将来做掌柜的时候,写账要用。”我暗想我和掌柜的等级还很远呢,而且我们掌柜也从不将茴香豆上账;又好笑,又不耐烦,懒懒的答他道,“谁要你教,不是草头底下一个来回的回字么?”孔乙己显出极高兴的样子,将两个指头的长指甲敲着柜台,点头说,“对呀对呀!……回字有四样写法,原创 2021-07-29 14:58:44 · 767 阅读 · 0 评论 -
redis数据迁移python实现
数据迁移要扫描redis的全部key使用next_cursor,this_keys = from_redis.scan(cursor=next_cursor, match=None, count=100)来扫描全表然后在对一个个的key,读源库,写新的库写新库时,根据业务对key做了些小改动,吧db添加到了key的开头这里还根据业务做了key类型的统计,以便最终可以看到多少key被扫描,多少key被迁移from_redisto_redisdef add_one(the_dict,the_ke原创 2021-06-24 18:50:38 · 429 阅读 · 0 评论 -
python 定时取conf 定时器
目标实现python的一个定时器,取一个后台的不定时的可配置参数实现用多线程的方式实现,开始的思路, 起一个,while循环取conf,取完了sleep一段时间后来发现python的threading.Timer,可以直接起定时任务import datetimeimport timeimport threadingimport jsonclass uuconfig(object): def __init__(self, config_path): self.co原创 2021-06-24 17:17:54 · 174 阅读 · 0 评论 -
codis command / redis command codis redis 差异
内部产品使用redis容量到了上限,准备着手迁移到codis然而遇到一些问题难以解决:原来业务逻辑有一个是使用了redis的keys() 方法,查询某一个正则匹配的key list,在codis中不支持在原有的逻辑是要分db现在codis没有办法做db的区分以上问题都需要在业务代码中进行改动中间为了达到目的中间做了一些测试和代码调试,记录下codis和redis的差异cfg = DotDict(redis_config)db = 1conn_ori = redis.StrictRedis原创 2021-05-18 18:07:22 · 187 阅读 · 0 评论 -
python异步执行subprocess.Popen(),并输出执行的log
目标我的web项目需要用异步跑一些任务,在web页面上提交后,接收一个执行状态,希望能在web后台看到提交的任务的执行进度异步任务的输出日志在任务脚本中可以自己添加网上解决方案在我这有问题参考了 Python subprocess.Popen 实时输出 stdout(正确管道写法)等多个相关问题的文章,但是在我的环境没法看到输出这些popen参数中的stderr都是使用的subprocess.PIPE、STDOUT、STDERR,subprocess.Popen('ping baidu.com原创 2021-03-29 14:29:10 · 6585 阅读 · 0 评论 -
python 判断in操作的时间复杂度
python 代码常用in来判断一个元素是否在list中,这个判断的时间复杂度是多少呢?in list : o(n)in set : o(1)in dict : o(1)具体的时间差多少呢,跑了下数据,具体如下list1 = list(range(100000))%timeit 1 in list151.3 ns ± 4.23 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)%timeit 100 in list1原创 2021-02-07 16:37:46 · 4406 阅读 · 1 评论 -
bootstrap的Modal使用,flask+python+bootstrap
flask之前用过,不过前端点框架没用过bootstrap,第一次使用终于通了。期间好多地方不知道怎么写,使用bootstrap提供点模板还是要修改一些东西才能够用。遇到的问题:点击提交按钮没有反应提交后,在flask中request.form为空flask js文件引用静态文件问题使用的模板:bootstrap的Modal这是bootstrap官网提供的modal模板<button type="button" class="btn btn-primary" data-toggle原创 2021-02-06 16:12:21 · 1109 阅读 · 3 评论 -
用python按时间戳查找kafka记录
需求:有一个kafka队列,我需要从中找到我想要的一条数据,目前知道的是数据的生成时间的大致范围和value中的一个字段内容。from kafka import KafkaConsumerimport jsontime_st = '1603344765476'txt = '随便一个字段.pptx'consumer = KafkaConsumer(group,topic,ip...)思路:基本逻辑:查询kafka的数据需要用到offset, partition来定位消费的开始的点。然后开原创 2020-10-23 17:19:42 · 1485 阅读 · 0 评论 -
python基础之if条件判断
if后的多个条件依次判断, 遇到不符合的条件后直接跳转到else原创 2020-09-18 18:07:01 · 1780 阅读 · 1 评论 -
jinja2初次使用记录
官网: https://jinja.palletsprojects.com/en/2.11.x/安装: pip install Jinja2 or pip3 install Jinja2基础模块:基本使用:使用dataframe的数据填充html表格:用到的 templates.html<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <tit.原创 2020-08-31 19:03:41 · 883 阅读 · 0 评论 -
用python在excel画画
在B站看到一个人在excel画人像,秀的一手好技术,但是作为半个程序猿有点忍不了,所以有了这个小脚本。主要实现功能很简单,读取图片,把像素转化成excel的表格底色,保存到excel。import openpyxlfrom openpyxl.styles import PatternFillfrom PIL import Imagefrom openpyxl.utils.cell import _get_column_letterfrom datetime import datetimec原创 2020-05-30 21:40:02 · 829 阅读 · 0 评论 -
python读取文件路径问题
python读取文件时,明明在同一路径下,却无法读到文件,报路径不存在。问题比较奇葩,感觉自己对路径读取相关问题也不是很透彻,先挖坑后面清楚了在整理出来。现在把工程的.idea文件夹删除,然后重新导入工程目录解决了。这个可能跟pycharm的一些设置有关,但是在vscode上也不行,跟vscode也有关系?命令行单独执行脚本现在是ok的...原创 2020-01-10 12:02:10 · 723 阅读 · 0 评论 -
用写sql的思路写dataframe:把sql语法转化成dataframe语法
查询表 a_table如下:classnameprojectscore一班张三语文80一班张三数学90二班李四语文80二班李四数学90查询筛选select name,scorefrom a_tablewhere class='一班' and project='语文'a_table = pd.DataFrame(.........原创 2020-01-03 16:59:51 · 1684 阅读 · 0 评论 -
pyodps 读取表字段title的方法
# 1Record()._name_indexes.keys()# 2Reader()._schema.names原创 2019-10-30 18:38:14 · 952 阅读 · 0 评论 -
python下载wiki中的excel
内部wiki使用的是 Atlassian Confluence ,业务上回有些数据用excel跟新到wiki,现在用程序下载目标excel。file_url直接在页面上获取的,excel其实可以从url里截取,有时间再更吧。刚开始使用requests.get(url)无法正常下载,需要登录授权才能下载,在官网看了下文档,找到了他们提供的登录api。现在发现有问题还是要找官方文档来的简单,整...原创 2019-10-28 18:00:02 · 344 阅读 · 0 评论 -
python查询MySQL结果输出dict/json
from mysql import connector cnx = connector.connect()cur = cnx.cursor(dictionary=True)sql = '''select 1 as one,2 as tow union select 11 as one,22 as tow union select "011" as one,"022" as tow;'...原创 2019-08-21 16:08:24 · 1755 阅读 · 2 评论 -
1991-2018年北京平均工资官方数据整理汇总 附数据来源链接
代码import pygalthis_bar = pygal.Bar()years = ['1991', '1992', '1993', '1994', '1995', '1996', '1997', '1998', '1999', '2000', '2001', '2002', '2003', '2004', '2005', '2006', '2007', '2008', ...原创 2019-08-15 14:59:50 · 1218 阅读 · 0 评论 -
pyudf 计算自然周和当周周一
目录目标代码效果目标业务统计需要按照自然周看数据,所以把每天计算都归到自然周。展示的时候用自然周的周一来代替自然周展示。odps 没有计算自然周的函数,所以用 Python 做了一个 udf 来实现。一年的第一天是周一,那么这一年的自然周就是以01开始,否则是以00,这个在计算对应的周一时会产生问题,针对跨年周做了兼容处理。似乎 MySQL 在计算自然周的时候也有类似问题,这里没有细...原创 2019-08-23 16:16:49 · 820 阅读 · 0 评论