![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Python相关
Zmoooon
这个作者很懒,什么都没留下…
展开
-
利用crontab和shell脚本实现对应用程序的守护
这个命令表示每分钟执行一次monitor.sh脚本。其中">/dev/null 2>&1"的作用是将脚本的输出重定向到/dev/null,这样就不会生成日志文件。linux中利用crontab 以及shell脚本来监控一个名为aaa.py的程序,当aaa.py没有运行时 则将其运行起来。这个脚本的作用是检查aaa.py是否在运行中,如果不在,则启动它。原创 2023-06-15 15:28:19 · 193 阅读 · 0 评论 -
利用zip函数实现对python字典中的值进行排行
利用zip函数实现对python字典中的值进行排行原创 2023-04-06 15:16:01 · 439 阅读 · 1 评论 -
利用Python实现系统监控脚本
利用python实现系统监控原创 2023-01-30 13:39:27 · 1419 阅读 · 0 评论 -
postgres批量操作高性能写法
postgres批量操作高效写法原创 2022-11-28 15:45:15 · 616 阅读 · 0 评论 -
解决Python对Postgres批量操作解决单值元组引发的报错
解决python批量操作postgres,当values为单元素元组时引发的报错原创 2022-11-28 15:20:34 · 372 阅读 · 0 评论 -
Python将时间数据转换成datetime.datetime类型
适配数据库表timestamp类型字段,将时间数据转为datetime.datetime类型原创 2022-11-28 14:54:37 · 3236 阅读 · 0 评论 -
Nanoid一款比UUID更快更安全的随机值生成方式
nanoid 一款高效安全的随机值生成方式原创 2022-07-06 14:16:53 · 517 阅读 · 0 评论 -
Nacos服务部署及配置读取
nacos服务通过docker部署以及使用python进行配置读取的demo原创 2022-06-13 17:24:07 · 565 阅读 · 0 评论 -
hbase报错TTransportException(type=4,message=’TSocket read 0 bytes’)解决方案
hbase报错TTransportException(type=4,message=’TSocket read 0 bytes’)(1)报错信息:thrift.transport.TTransport.TTransportException: TSocket read 0 bytes(2)产生原因:是因为thrift 的server端和client端的协议不匹配造成的。Python要使用TCompactProtocol,而不能使用TBinaryProtocol。TBinaryProtocol:缺原创 2020-05-15 10:20:11 · 11468 阅读 · 0 评论 -
Python通过schedule调度模块实现任务定时执行
python通过schedule调度模块实现任务定时执行基本用法:import scheduleimport timefrom datetime import datetimedef job(): #print("I'm working...") now = datetime.now() time = now.strftime("%H:%M:%S") print (f'现在的时间是: {time}')#schedule.every().second.do(j原创 2022-04-19 16:23:54 · 1616 阅读 · 0 评论 -
Python通过装饰器实现对代码函数模块运行时长的监控
Python用装饰器实现对代码模块运行时长的监控代码:# 可监控程序运行时间import timedef clock(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print("共耗时: %s秒" % round(end_time - sta原创 2022-04-19 15:34:50 · 513 阅读 · 0 评论 -
Python字符串拼接变量的优雅写法
Python字符串拼接变量的优雅写法方法:在python中 字符串前加 f表示:在字符串内支持大括号内的python表达式import timename = "tom"# 常规写法print("his name is " + name + "!")print("present time is "+ str(int(time.time())))# 分隔符print('&'*50)# 优雅效率写法print(f"his name is {name}!")print(f原创 2022-04-19 13:56:24 · 801 阅读 · 0 评论 -
利用gevent实现web服务先返回结果然后在处理数据
利用threading实现web服务先返回结果然后在处理数据一、功能:web服务中,先将success结果返回给前台 然后在执行具体的数据处理函数二、运行:step1:/usr/local/lib/python3/bin/gunicorn -k gevent run:app -b 0.0.0.0:9000 -w 8step2:然后另起终端执行 curl http://127.0.0.1:9000/demo三、脚本demo:vim run.pyfrom flask import Flaski原创 2022-01-11 15:26:16 · 538 阅读 · 1 评论 -
python装饰器实现捕获函数执行用时
python装饰器实现捕获函数执行用时示例程序:import time# 定义可捕获程序运行时间的装饰器def clock(func): def wrapper(*args, **kwargs): start_time = time.time() result = func(*args, **kwargs) end_time = time.time() print("共耗时: %s秒" % round(end_time - s原创 2022-01-06 10:49:19 · 191 阅读 · 0 评论 -
一款超好用的python的log记录工具——loguru
一款超好用的python的log记录工具—loguru1. 安装pip install loguru2. 使用简介2.1 add()函数在loguru中,只需要通过一个add()函数即可设置Handler,设置Formatter,Filter Message,rotation,retention以及设置Level等配置项。示例:from loguru import loggerimport sys# 过滤出含有“filter_message”的error信心输出到系统命令行logg原创 2021-12-17 10:28:02 · 2588 阅读 · 0 评论 -
supervisor监控的进程中print语句获取不到输出的问题
supervisor监控的进程中print语句没有输出问题在supervisor的ini进程配置文件中,command 参数中python3 执行 要加-u 不然会因为缓冲区的问题 导致日志没有写进stdout_logfile的文件。原创 2021-11-18 11:34:55 · 937 阅读 · 0 评论 -
python利用socket实现telnet功能-检查服务是否开放
python利用socket实现telnet功能-检查服务是否开放代码如下:例如:想知道10.255.123.23这台服务器上的postgres数据库是否开放,可通过如下代码import socketdef telnet(ip,port): s = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: s.connect((ip,int(port))) s.shutdown(2)原创 2021-09-07 11:05:09 · 445 阅读 · 0 评论 -
Python判断一个数据结构是否为空的方法
Python判断一个数据结构是否为空的方法最近在看《Effective Python》,里面提到判断字符串或者集合是否为空的原则,原文如下:Don’t check for empty values (like [] or ‘’) by checking the length (if len(somelist) == 0). Use if not somelist and assume empty values implicity evaluate to False.意思是:不要通过取字符串或者集合的长原创 2021-05-28 11:16:47 · 1993 阅读 · 0 评论 -
Python 计算整分钟,整小时,整天的时间
Python 计算整分钟,整小时,整天的时间# -*- coding:utf-8 -*-import datetimedef get_hourly_chime(dt, step=0, rounding_level="s"): """ 计算整分钟,整小时,整天的时间 :param step: 往前或往后跳跃取整值,默认为0,即当前所在的时间,正数为往后,负数往前。 例如: step = 0 时 2019-04-11转载 2021-03-11 13:58:25 · 1547 阅读 · 0 评论 -
postgres数据库的库表备份恢复
postgres数据库的库表备份恢复一、单表备份(0)前言用户名:postgres数据库:test表明:test_table表备份输出的文件:/var/lib/pgsql/test_table.sql(1)备份命令:pg_dump -U postgres test -t test_table -f /var/lib/pgsql/test_table.sql(2)恢复命令:psql -U postgres -d test < /var/lib/pgsql/test_table.s原创 2021-03-08 10:40:48 · 337 阅读 · 2 评论 -
python实现log日志输出并管理日志文件
python实现log日志输出并管理日志文件功能:用于py脚本的log记录, 以天为单位(每天都会生成一个新的log文件),log文件在目录下最多保留7天创建脚本:建立log.py文件,内容如下:import osimport timeimport loggingimport datetimefrom logging import handlersdef record(**kwargs): filename = kwargs['filename'] level = k原创 2021-01-29 16:48:02 · 1419 阅读 · 0 评论 -
利用python3的ipaddress包实现ip内外网判定
利用python3的ipaddress包实现ip内外网判定代码如下:from ipaddress import IPv4Addressdef judge_ip_private(ip_data): ''' 返回值True为内网,False为外网 ''' result = IPv4Address(ip_data).is_private return resultprint(judge_ip_private('10.255.11.22')) # 输出:True原创 2021-01-28 14:16:59 · 675 阅读 · 2 评论 -
python中‘\u‘开头的字符串编码转中文
python中’\u’开头的字符串编码转中文如图所示解决办法:当字符串中遇到以\u开头的编码转换成中文显示可以这样做:python3的解决办法:字符串.encode(‘utf-8’).decode(‘unicode_escape’)python2:字符串.decode(‘unicode_escape’)结果如下:...原创 2021-01-05 11:13:01 · 3513 阅读 · 3 评论 -
进程、线程、协程区别以及通俗理解
进程、线程、协程区别以及通俗理解请仔细理解如下的通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子)他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程这个老板为了提高生产率,想到3种办法:(1)在这条生产线上多招些工人,一起来做剪子,这样效率是成倍増长,即单进程 多线程方式(2)老原创 2020-07-28 17:28:23 · 454 阅读 · 0 评论 -
解决clickhouse插入数据因占位符报错
解决clickhouse插入数据因占位符报错解析:可能是clickhouse_driver的插入语句中不支持用%s占位符操作导致如下报错(一开始被误导了 一直认为是values中有null值导致的)正确方法详情见代码中的示例,values需要构造成 [{‘表中字段’:‘值’}] 形式代码示例:from clickhouse_driver import Clientdef main(): # 错误示例 # sql = ("insert into table_zy(id,t原创 2020-06-22 15:51:05 · 1672 阅读 · 3 评论 -
用数据库api中mogrify方法处理sql中特殊转义字符
用数据库api中mogrify方法处理sql中特殊转义字符问题:以一个url(json解码后的,存在转义字符)为查询条件去数据表中查找内容 出现报错分析:\u0027为单引号“‘”的unicode转义表示 在sql语句中不能适用介绍:mogrify可以将复杂的语句转换为正常的格式 用法见如下代码#!/usr/bin/python# -*- coding: UTF-8 -*-import psycopg2import psycopg2.extrasimport jsonimport dem原创 2020-06-18 15:51:29 · 708 阅读 · 0 评论 -
遍历获取一个路径下所有子文件夹及文件
遍历获取一个路径下所有子文件夹及文件# -*- coding:utf-8 -*-import osdef get_dir_file(rootdir): objects = os.listdir(rootdir) dir_list = [] #存放目录列表 file_list = [] #存放文件列表 for obj in objects: judge_dir = os.path.isdir(os.path.join(rootdir, obj))原创 2020-06-04 10:14:10 · 392 阅读 · 0 评论 -
python列表推导式用法
python列表推导式用法两种构建模式:(1) 循环模式: [变量(加工后的变量) for 变量 in iterable]1. 将10以内所有整数写入列表a = [i for i in range(1,11)]print(a)# 输出结果[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]2. 将10以内所有整数的平方写入列表。a = [i**2 for i in range(1, 11)]print(a)(2) 筛选模式: [变量(加工后的变量) for 变量 in i原创 2020-05-12 13:52:09 · 598 阅读 · 0 评论 -
Effective Python之编写高质量Python代码的59个有效方法
Effective Python之编写高质量Python代码的59个有效方法参考链接:https://www.cnblogs.com/xiaobingqianrui/p/10167398.html转载 2020-05-12 13:41:41 · 265 阅读 · 0 评论 -
Python中enumerate方法
Python中enumerate方法用法:enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。示例:a = ['aa','bb','cc']for index,value in enumerate(a): print(index,value)'''输出结果:0 aa1 bb2 cc'''...原创 2020-05-12 13:39:14 · 179 阅读 · 2 评论 -
python字符串和列表的元素翻转方法
python字符串和列表的元素翻转方法一、列表翻转a=[1,2,3,4]a.reverse()print(a)结果:a=[4,3,2,1]二、字符串翻转(1)可以用切分方法:a="hello"result = a[::-1]print result结果:'olleh'(2)先将字符串转成list之后再reverse:a="hello"l = list(a)l.re...原创 2020-04-28 14:48:50 · 525 阅读 · 0 评论 -
列表for循环时循环内部对列表进行remove操作(for循环中的坑)
列表for循环时循环内部对列表进行remove操作(for循环中的坑)import copya = [1,2,3,4]# b = copy.deepcopy(a)# for i in b:for i in a: print(i) print(a) a.remove(i) print(a) print("------------------")...原创 2020-04-27 16:50:03 · 818 阅读 · 1 评论 -
用python实现图片换脸
用python实现图片换脸代码如下:# -*- coding:utf-8 -*-import requests #导入requests库import base64 #导入base64库 #借助https://console.faceplusplus.com.cn平台来实现换脸API_Key = '7LUPX5XQcDUYIXTu-_YMAT-mvEgIRKVQ' ...转载 2020-04-23 11:08:43 · 2192 阅读 · 0 评论 -
centos安装pip失败的问题
centos安装pip失败的问题原文地址:(1)https://www.cnblogs.com/saolv/p/6963314.html(2)https://blog.csdn.net/u013414502/article/details/79532686?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=d...原创 2020-04-18 14:11:49 · 321 阅读 · 0 评论 -
Python多进程Event()的使用
Python多进程Event()的使用原文地址:https://www.cnblogs.com/lonelyshy/p/9720599.html通俗点儿讲就是Event().wait() 插入在进程中插入一个标记(flag) 默认为 false 然后flag为false时 程序会停止运行 进入阻塞状态Event().set() 使flag为Ture 然后程序会停...原创 2020-04-17 15:39:06 · 348 阅读 · 0 评论 -
Python的异步执行方法(用线程做一个异步装饰器)
Python的异步执行方法(用线程做一个异步装饰器)参考链接:https://blog.csdn.net/ieeso/article/details/82347136代码:from threading import Threadfrom time import sleepdef async(f): def wrapper(*args, **kwargs): t...原创 2020-04-17 15:11:13 · 723 阅读 · 0 评论 -
获取两个列表中的交集与差集
获取两个列表中的交集可以使用set集合的intersection方法例:a = [1,2,3]b = [3,4,5,6,2]common = set(a).intersection.(set(b))print(list(common))输出:[2,3]原创 2020-04-17 14:55:31 · 657 阅读 · 0 评论 -
Python两个变量的值进行互换小技巧
Python两个变量的值进行互换小技巧a = {“aa”:123}b = {“bb”:456}a,b = b,a # 在python中可以这样做进行对两个变量的值进行互换输出:a = {“bb”:456}b = {“aa”:123}...原创 2020-04-17 14:51:57 · 562 阅读 · 0 评论 -
Python3 异步协程函数async具体用法
Python3 异步协程函数async具体用法参考链接:https://blog.csdn.net/Likianta/article/details/90123678https://www.jianshu.com/p/7690edfe9ba5转载 2020-04-17 14:47:42 · 1220 阅读 · 0 评论 -
判断ip是否为内部网络以及ip转int型方法
判断ip是否为内部网络以及ip转int型方法Ip转int网页工具:http://www.bejson.com/convert/ip2int/代码def check_private_addr(ip): """ 判断ip是否是内网地址,若返回2的话则为内网ip,若返回1则是外部网络ip """ f = unpack('!I', i...原创 2020-04-17 14:42:07 · 147 阅读 · 0 评论