自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(98)
  • 收藏
  • 关注

原创 记录腾讯云重置密码之后ssh就连不上的踩坑

想起了以前ssh有时连不上时是自己手动在服务器开启防火墙端口放行的,于是使用lighthouse免密登录,查看防火墙放行端口,使用ufw命令查看,发现没有放行端口,最后手动添加放行端口,然后无论是xshell还是控制台的ssh连接立马就通了所以这应该可以理解是腾讯云控制台显示的防火墙有问题?(尽管最开始应该是有效的)放出我执行的过程截图和最后的状态:手动修改防火墙放行端口,最开始status不是active的sshd_config的修改ubuntu用户使用密钥能登录了root密码也能登录了。

2023-11-04 21:23:43 1051

原创 Python中的多线程和多进程应用模拟以及协程程序中使用多线程和多进程

总而言之,虽然说GIL的存在限制了同一个进程下同一时刻最多允许一个线程运行,但也有例外,这个例外就是使用线程池开启新的线程loop.run_in_executor后台执行,这个在新的线程中运行的任务,虽然仍然是当前进程下的线程在执行,但是它不会受到当前进程的GIL存在的影响,它可以和当前进程中的其他线程并行运行。从结果来看,一个1s左右的CPU密集运算函数(cpu_bound_task),和1个1s异步sleep的函数(coro_task),受到了GIL的限制,其运行时间是2s左右,很合理。

2023-08-21 18:58:38 265

原创 MySQL同样条件的SQL,多查询1个字段得到的记录却不一样?MySQL内部优化机制引起未预期的查询结果

如果没有默认优化,查询方式一样,那么结果也会是一样的,优化之后可能会导致上面这种查询结果不一样的情况,而且官方也宣称了优化也不一定保证是更快的,有时可以考虑自己加上force index不走扫表方式查询。再对limit 1000的两条语句使用explain查看说明会发现两者查询方式相同,都是走index,因为查询的是浅分页,数据比较靠前,MySQL优化机制认为走index回表查询效率更高,因此没有选择扫表的方式查询。很明显这两条SQL的条件一模一样,只是查询的列数不相同而已,为什么得到的结果却是不一样的?

2023-07-15 12:20:32 563

原创 使用pands.rolling方法实现移动窗口的聚合计算

rolling中还有一个center参数,可以指定移动窗口的中心位置作为基准对数据执行计算,center默认为False表示当前数据作为窗口的最后一个数作为基准选取计算的区域,为True的时候将以当前数据作为窗口的中心位置作为基准选取数据执行计算:窗口大小是奇数时,如上图一样上下各平分一般窗口计算区域,如果窗口大小是偶数,上半窗口会多多一个数,比如窗口是4,那么上半区域是2个数,下半区域是1个数,加上自身一共4个数支持指定时间窗口的条件:index必须是python的时间类型。

2023-04-30 23:53:35 885 1

原创 I/O多路复用与python实现epoll过程逐步解释

I/O多路复用机制是指一个线程兼顾地同时处理多个IO流,详细来说就是在只有一个线程的i情况下,I/O多路复用允许内核中同时存在多个监听套接字(listening socket)和已连接套接字(connected socket),内核会持续监听这些套接字,一旦接收到某套接字的连接请求或数据等,就会将这个事件交给主线程去处理,不同于一个线程阻塞的监听等待一个套接字,I/O多路复用的方式实现了一个线程同时可以处理多个IO流的效果。前面说到了epoll改进了select的三个缺点,没有具体细说,这里继续解释。

2023-03-01 00:01:37 419

原创 使用异步ORM SQLAlchemy提升web服务性能

对于一个web服务,性能的瓶颈最终基本上都会出现在数据库读取的这一步上,如果能够在数据库读取数据的这一段时间自动切换去处理其他请求的话,服务的性能会得到非常显著的提升,因此需要选择一个合适的异步驱动和工具包,以最通用和常用为出发点,选择aiomysql + sqlalchemy介绍一些比较好的实践,SQLAlchemy的一些用法和最佳实践介绍一个使用SQLAlchemy连接实现pandas的异步read_sql_query方法的实现

2022-12-31 18:45:49 1863

原创 两种方式实现websocket获取数据库查询进度

本文实现了两种方式用websocket连接实现前端通过API获取数据库查询进度,作为websocket初步学习的参考。

2022-11-20 17:31:36 2061

原创 Sanic服务启动失败,报错Cannot finalize with no routes defined

Sanic服务启动失败报错Cannot finalize with no routes defined

2022-11-17 22:52:48 1091

原创 DataFrame高效处理行列数据/倒三角型数据/处理阶梯型数据/根据列的值确定行的值

在使用pandas处理数据时,遇到了一种要按照留存天数来处理的数据,当列所对应的日期超过了最晚的“今天”那么数据就要置为0

2022-10-31 23:39:20 422

原创 解决dataframe中放到web返回中包含nan和inf导致json序列化报错的问题

实际上,与其做一些各种操作把nan、inf等不合法的字符替换(顺便可能带回一些副作用,比如数值列的nan是无法替换为None的),使用df的。等值,要放到json结构体中然后json序列化之后返回给web前端处理。你有个df,里面的数据可能包含。会在传到前端后会序列化失败。

2022-09-11 10:37:43 551

原创 Python解决多个进程服务重复运行定时任务的问题

问题:web项目运行多个实例时,定时任务会被执行多次的问题举例来说我使用库APScheduler排定了一个定时任务在每天的晚上9点需要执行一次,我的web服务使用分布式运行了8个实例,于是在每天晚上的9点,我的8个服务都会接收到APScheduler发布的这个定时任务,然后每个服务都会执行一次这个定时任务,这与我预期的只执行1次是不符的,我想要解决这个问题,让定时任务只被执行一次设想的解决方式:使用redis分布式锁的方式(redis.setnx(key, value))让实例只能运行一次定时任务,从而

2022-09-03 17:14:41 2262

原创 Pyscript,创建一个能执行crud操作的网页应用

观察pyscript在github的源码,确定要如何编写继承的类"content" : item , "created_at" : datetime . now() } # labels是展示的名称 return super() . add(item , labels = [ "content" ])其中和是本次要使用的pyscript类,主要内容是对前端item和list的操作这里没有导入会IDE抛红,不过不需要理会,这些类方法只会在HTML中执行PyList。...

2022-08-06 17:28:57 424

原创 Pyscript,使用Python编写前端脚本

Pyscript的入门介绍

2022-07-31 12:52:31 2952 4

原创 基于sanic的服务使用celery完成动态修改定时任务

sanic,asyncio、celery动态修改定时任务

2022-06-25 12:09:28 1432 2

原创 Python trino执行hive insert overwrite不生效的问题

使用python的trino包执行insert overwrite,但是overwrite却没有生效的问题根据trino的官网介绍的insert overwrite的开启方式,开启hive的insert overwrite会话,使当前会话的insert into语句支持insert overwrite,也即支持插入数据根据分区覆盖更新的功能但是在使用Python代码执行时总是没有生效,在花了不少时间debug之后,终于找到了原因竟是因为开启insert overwrite session的语句没有执行fet

2022-06-25 11:49:31 1468

原创 Python套接字编程Socket Progaming——1

本篇文章是Network And Web Programing-Socket Programing分类中的第一篇文章,内容主要包含Socket概念理解Socket programing介绍一个简单的TCP协议的server-client连接程序理解socket概念一个socket确定了网络中两个应用的端口之间的唯一连接方式,一个socket包含三个部分:协议方式(TCP, UDP或IP)、IP地址和端口号PORT,端口号是一个整数代表着一个进程,为了唯一确定端口之间连接,还需要指定使用的协议类

2022-05-29 16:37:59 533

原创 面试题:N皇后问题,思路和python解题笔记

n皇后问题算法解析,python问题描述n皇后问题,在n×n的棋盘上,解出n个皇后所有不能互相攻击的摆法,皇后在数组中用“Q”表示,空地用“.”表示返回的数据结构格式要求:[[“.Q…”,“…Q”,“Q…”,“…Q.”],[“…Q.”,“Q…”,“…Q”,“.Q…”]]注:皇后在棋盘中的攻击范围是横、竖、左和右中位线的四个方向解题思路分析红色划线部分为皇后的攻击范围,不可以放另外一个皇后横竖方向的限制很容易:只要与当前Q的行和列相同的index的部分全部禁止即可关键的难点是如何处理左右斜

2022-04-30 22:16:39 1280

原创 Python缓存类实例

本篇文章的内容主要包含利用Python弱引用存储字典缓存类的实例,让参数相同的实例不用重复生成略过代码编写,利用Python自带库缓存实例或方法在Python的许多库中都有缓存实例的例子,比如logging模块的Logger类实例import logginga = logging.getLogger("abc")b = logging.getLogger("abc")print(a is b) # True弱引用(weakref)通常用于缓存或映射数据量较大的对象,当你使用p

2022-04-02 20:14:22 1676

原创 Python实现访问者模式

假设要实现一个存放多种类型数据结构的对象,比如一个存放算术操作数和操作符的树结点,需要存放包含一元操作符、二元操作符和数字类型的结点class Node: passclass UnaryOperator(Node): def __init__(self, operand): self.operand = operandclass BinaryOperator(Node): def __init__(self, left, right):

2022-03-29 23:13:10 1208

原创 Python 代理类实现和控制访问与修改属性的权限

代理类实现与实例展示将一个类实例的属性访问和控制代理到代码内部另外一个实例类,将想对外公布的属性的访问和控制权交给代理类来操作,保留不想对外公布的属性的访问或控制权,比如只读访问,代理类的方式也可以作为继承的一种替代方式,代理类可以做的一些事情代理类的一个简单的实现方式示例目标:实现类Product的实例属性让另一个类Proxy来代理访问和控制,想将对外公布的属性交给代理类让外部访问和控制,不想对外公布的属性无法通过代理来访问和控制,这里不想对外公布的属性约定用下划线命名开头# proxy_exa

2022-03-20 12:47:47 1288

原创 写一个包含多个事件四则运算的留存SQL ——impala hive

在实现一个业务留存需求时,我遇到了一个难题:我需要提供展示一个按照如下图格式的数据,

2022-02-26 16:16:12 1633

原创 Python写一个字符串的数字后缀部分递增的函数

需求:Python处理重名字符串,添加或递增数字字符串后缀对于2个重名的字符串,添加数字后缀,比如两个重复的字符串s1 = “name”, s2 = “name”,将s2的名称设置为name_1对应3个或多个重名的字符串,数字部分实现递增,初始时s1=s2=s3=“name”,重命名后得到s1=“name”, s2=“name_1”, s3=“name_2”要灵活处理字符串问题,使用re模块最为方便下面是一个对带有下划线+数字的后缀字符串递增的方法def increase_string_su

2022-01-29 21:26:25 1924

原创 将Win10包含中文的用户名改为英文的,同时解决Anaconda navigator无法运行jupyter的问题

Win10用户名中文字符导致无法在Anaconda navigator直接运行jupyter的问题本篇文章内容包含:WIN10如何修改"C:\Users\用户名"中的用户名执行1后将用户名修改为英文名后可以在Anaconda navigator启动jupyter等插件修改WIN10"C:\Users\用户名"中的用户名准备:1.需要修改名称的账号; 2.一个管理员账号,或者拥有管理员权限的账号.修改登录win10的账号使用全英文名的账号登录,可以选择微软账户登录也可以使用本地账户登录修

2022-01-17 16:56:33 4658 4

原创 动态规划思路和Python解决零钱兑换问题和最大乘积子序列的乘积的问题

动态规划是一种主要用来优化朴素递归的方法,每当输入不同值调用递归函数出现大量重复的(子)输入和调用(返回结果)时,就可以考虑使用动态递归的方式来优化复杂度。动态规划的主要思想是存储子问题的结果,以便于在接下来可能出现的的重复子问题中直接使用已有的结果,这样子便可以将时间复杂度从指数级别降低到多项式(nlogn…)或线性级别,是一种以空间换时间的算法。以一个简单的斐波那契数列的为示例:几个问题的示例不同路径问题,DP解法:零钱兑换问题,DP解法求最大乘积子序列(的乘积),DP解法...

2021-12-27 23:03:47 646

原创 python 嵌套型partials(nested partials)的使用

def _compose2(time_fmt):date_trunc = CstFunc().DateTruncfrom_timestamp = CstFunc().FromTimestampreturn lambda time_unit, field: from_timestamp(date_trunc(time_unit, field), time_fmt)def ts(f, tu):return partial(f, tu)class Te(Enum):week = ts(_compos

2021-12-27 22:30:38 587

原创 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused

(pyenv install xxx) 报错curl: (7) Failed to connect to 127.0.0.1 port xxxx: Connection refused的解决方法问题重现截图:在查看下面的原因和使用解决方法之前,确保自己的pyenv已经安装好了最新的python-build,执行python-build命令看是否有效果如果没安装好,可以执行pyenv的python-build安装:cd ~/.pyenv/plugins/python-build &&amp

2021-12-19 13:16:28 23624

原创 pandas处理日期的几种常用方法

1.读取字符串日期写入csv 文件 csv_text = """date, value2022-01-01, 12022-01-05, 52022-11-05, 5"""with open("date_text.csv", "w") as f: f.write(csv_text)读取日期df = pd.read_csv("date_text.csv")print(df)print(df.dtypes)输出 date value0 2022-

2021-11-28 16:10:18 9006

原创 Python enum的使用总结

枚举(enumeration)在许多编程语言中常被表示为一种基础的数据结构使用,枚举帮助组织一系列密切相关的成员到同一个群组机制下,一般各种离散的属性都可以用枚举的数据结构定义,比如颜色、季节、国家、时间单位等在Python中没有内置的枚举方法,起初模仿实现枚举属性的方式是class Directions: NORTH = 1 EAST = 2 SOUTH = 3 WEST = 4使用成员Direction.EAST Direction.SOUTH 检查成员

2021-11-20 11:40:57 5116

原创 Python导包、模块报错的问题

import报错No module named "xxx"问题如何将指定目录作为项目根目录,让项目根目录下的包/模块都可以直接导入?(linux下)示例:目录层级Desktop/pytest/下: test/test.py # 这里面内容是print("test") path_test/path_test.py # 在这个文件里写入from test import test,因此需要将pytest/设置为项目根目录进入pytest/目录在终端输入pwd命令获取pytest/的绝对路径:/h

2021-06-04 14:39:17 2516

原创 Python多线程单例的几种实现方式

1. 单例模式;2.装饰器批量装饰实现单例,且不丢失类型提示;3.限制实例个数

2021-03-20 00:47:56 2162

原创 求4个数字组成的不重复三位数,Python简洁解法

求4个数字组成的不重复三位数,Python解法题目要求:求所有由5,6,7,8组成的数字不重复的三位数不重复的三位数,即不能出现555,566这种通过分析,可以使用画树的方法来确定要求的三位数的值与个数按照上图分析所示可以确定由5,6,7,8共可以组成24个不重复的三位数于是写出Python代码如下:class Solution: def noRepeatTriplets(self, strs='5678'): global n first, sub_

2021-03-11 22:52:04 3873 2

原创 Django开发中问题和报错集合

记录django项目开发过程中的遇到的问题,导致原因和已经奏效的解决方法常见报错UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xbc in position 852: invalid start byte这个问题在一些电脑上做django开发时经常出现要么是py文件运行是就报这个类似的无法解码的问题,要么就是运行服务器后台添加数据保存时报这个错误现总结了以下一些可能的原因和解决方法:可能的原因:1.GBK编码的文件(不一定是py文件)

2021-03-03 23:12:26 913 2

原创 ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock‘

启动数据库时报错,代码ERROR 2002 (HY000)报错截图:原因:网络环境发生改变,mysql配置文件中绑定的IP与现在系统的IP不一致解决:修改配置文件中绑定的IP地址为本系统的IP地址使用命令:sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf修改找到bind_address,将其值修改为本系统IP地址:截图...

2021-02-26 12:19:11 521 1

原创 [已解决]fdfs-client-py==1.2.6安装失败

fdfs-client-py==1.2.6解决方法下载修改版的fdfs的master.zip文件到任意文件夹:https://pan.baidu.com/s/12UwP6IBqvXK9AuVt3oEuCA提取码:fdfs复制这段内容后打开百度网盘手机App,操作更方便哦进入你要安装模块的目录中并激活环境,如果你是直接安装到系统那可以直接用pip在cmd安装:cd 到master.zip压缩文件所在目录执行安装代码:pip install fdfs_client-py-master

2021-01-17 21:16:27 499

原创 数据结构之图:加权有向图与dijkstra算法找到最短路径,Python——28

加权有向图与dijistra算法找到最短路径加权有向图的构造去往dijstra算法class DirectedEdge: def __init__(self, _from, _to, weight): self._from = _from self._to = _to self.weight = weight def get...

2020-04-20 21:29:07 2355 4

原创 数据结构之图:加权无向图与寻找最小生成树,Python——27

加权无向图与寻找最小生成树加权无向图的介绍引入加权无向图是一种为每条边关联一 个权重值或 是成本的图模型。这种图能够自然地表示许多应用。在一副航空图中,边表示航线,权值则可以表示距离或是费用。在一副电路图中,边表示导线,权值则可能表示导线的长度即成本,或是信号通过这条先所需的时间。此时我们很容易就能想到,最小成本的问题,例如,从西安飞纽约,怎样飞才能使时间成本最低或者是金钱成本最低?给...

2020-04-20 17:58:42 1954

原创 数据结构之图:有向图的拓扑排序,Python代码实现——26

有向图的拓扑排序拓扑排序介绍什么是拓扑排序?一个有向图的拓扑排序(Topological sort 或 Topological ordering)是根据其有向边从顶点U到顶点V对其所有顶点的一个线性排序举个例子:让一个拓扑排序的图中的所有顶点代表某项要执行的任务组合,那么它的边就可以代表要执行要执行其中某一项任务必须要先先于另外一项任务的限制条件,在这个例子中,拓扑排序就是这项任务组合的...

2020-04-20 15:34:56 1368

原创 数据结构之图:有向图的介绍与实现,Python代码实现——25

有向图的介绍引入在实际生活中,很多应用相关的图都是有方向性的,最直观的就是网络,可以从A页面通过链接跳转到B页面,那么a和b连接的方向是a->b,但不能说是b->a,此时我们就需要使用有向图来解决这一类问题,它和我们之前学习的无向图,最大的区别就在于连接是具有方向的,在代码的处理上也会有很大的不同。定义有向图(Digraph或Directed graph)是一副由一系列顶...

2020-04-20 13:26:07 6774

原创 数据结构之图:用图解决案例,Python代码实现——24

用图解决畅通工程案例畅通工程-续介绍案例和之前并查集中实现的一样,但问题略有改动,需要判断9-10城市是否相通,9-8城市是否相通:使用图解决次案例:创建一个图无向图Undigraph对象 ,表示城市的图;分别调用Undigraph对象的addEdge(0,1),addEdge(6,9),addEdge(3,8),addEdge(5,11),addEdge(2,12),addE...

2020-04-20 11:26:39 606

原创 数据结构之图:图的搜索,Python代码实现——23

图的搜索深度优先搜索(Depth First Search)定义从例子出发理解DFS是一种用于遍历或搜寻树类或图类数据结构的算法,这种算法从根结点出发(如果是图,则任意选择一个顶点作为根结点),在回溯之前会尽可能地遍历每一个分支。DFS类似于树的先序遍历假设左结点优先于右结点,并且不会重复遍历,则上图的DFS路径:A→B→D→F→E→C→G如果不遍历时不标记已遍历,则会重复遍历,...

2020-04-20 10:29:30 1285

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除