自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(372)
  • 资源 (6)
  • 收藏
  • 关注

原创 Python避坑指南之字符串strip

strip 我们常常使用它去掉两边空白字符如str01.strip(" "), 这样使用没有什么问题但是像我,对它的理解就存在偏差之前的理解是a.strip("tom")去掉a 字符串 两边的 tom,开头结尾严格匹配。看下面的例子,可能就不符合我们的预期。a = "tot a totma"a.strip("toma")# Out: ' a '从现象来看,a.strip("toma")"toma",可以转化成一个集合,匹配开头结尾的时候,以第一个不在集合内的字符结束...

2020-11-24 23:05:53 6

原创 Python 字典列表,根据字段字段进行排序。

对字典列表进行排序from operator import itemgetter# 有如下一个列表,我们需要给其中的字典进行排序,比如根据uid排序rows = [ {'name': 'Brian', 'id': 1003}, {'name': 'David', 'id': 1002}, {'name': 'John', 'id': 1001}, {'name': 'Big', 'id': 1004}, {'name': 'Ag', 'id': 1004}]

2020-11-02 23:41:26 194

原创 Python 列表循环删除

案例列表循环删除中,第一次很容易采坑如下面案例,我们想把列表中 2全部删除alist = [1,2,3,1,2,2,3,4]for i in alist: if i == 2: alist.remove(i)print(alist)我们希望得到 [1, 3, 1, 3, 4]结果 [1, 3, 1, 2, 3, 4,有一个2漏掉了分析for循环一个list的时候,每次循环Index索引+1。如果这个时候动态的改变列表比如第一次循环 索引Index =

2020-10-15 21:14:48 31

原创 Linux /proc/$pid Linux进程文件

Linux中 /proc/$pid 目录下 存放着所有的进程信息https://www.linuxprobe.com/linux-proc-pid.html首先在/root目录下,启动一个进程# 启动一个简单的文件服务器,访问端口9999python -m http.server 9999查询这个进程的pid 号另外起一个终端shell,去查询刚才进程的pid号lsof -i:9999# 或ps -ef | grep python我的pid号是 1780# 进入进程的li.

2020-09-28 00:18:17 46

原创 Python bisect对有序序列进行插入值的操作

import bisect# 使用bisect前,需要先排序data = [4, 2, 9, 7]data.sort() # 排序print("sort", data)bisect.insort(data, 3)print("bisect.insort", data) # 插入并排序index = bisect.bisect(data, 0)print("bisect.bisect", data) # 不会插入,返回如果插入的话,插入的位置print("bisect.bisect -

2020-09-21 00:38:15 44

原创 Python 动态导入

Python 动态导入首先是项目目录结构其中 lib_a.py 和lib_b.py 代码如图# lib_a.pydef do_something(): print("this is lib_a.py") # lib_b.pydef do_something(): print("this is lib_a.py")main代码如下#!/usr/bin/env python# coding:utf8import importlibmodule_name =

2020-09-17 22:19:42 49

原创 小技巧 Python打印有格式的字典dict、json数据

小技巧 Python打印有格式的字典dict、json数据import jsonimport pprinthero_dict = { "heroId": "1", "name": "黑暗之女", "alias": "Annie", "title": "安妮", "roles": [], "isWeekFree": "0", "attack": "2", "defense": "3", "magic": "10", "di

2020-09-17 21:57:46 92

原创 Python Sched定时任务

sched 定时任务模块# coding:utf8import timeimport sched# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。# 一般情况就使用time.time, time.sleep即可s = sched.scheduler(time.time, time.sleep)# 获取时间戳的函数 2020-09-16 19:03:01def get_time(): return time.strftime("%Y-%m-%d .

2020-09-16 22:52:57 68

原创 Python PDB 调试

PDBpython内置的调试工具,Python Debugger支持断点、单步调试、支持流程控制、支持堆栈检查。支持源码嵌入,也可以事后进行调试。源码嵌入调试就是在源代码中嵌入pdb语法,进行打断点。这种import pdbdef add(a,b): c = a + b pdb.set_trace() return cprint(add(3,4))事后进行调试# a.pydef add(a,b): c = a + b return c

2020-09-15 22:52:35 38

原创 Python Schedule定时任务

# 参考 https://zhuanlan.zhihu.com/p/23086148import scheduleimport time def job(name): print("her name is : ", name) name = "xxxxxxxxxx"schedule.every(2).seconds.do(job, name)schedule.every(10).minutes.do(job, name)schedule.every().hour.do(job,

2020-09-14 22:53:36 38

原创 Python 树的深度优先和广度优先

"""广度优先和深度优先"""# 树的节点,如果是第一个,则为root节点class Node: def __init__(self, value): self.val = value self.left = None self.right = None# 定义树class Tree: def __init__(self): self.root = None # 添加元素 def add_el

2020-09-09 11:55:57 44

原创 MySQL 使用篇 组合查询

组合查询组合查询,也叫合并查询,就是将多个sql语句的查询结果集合并为一个大的结果集。比如有如下两个sql语句mysql> SELECT m1 FROM t1 WHERE m1 < 2;+------+| m1 |+------+| 1 |+------+1 row in set (0.00 sec)mysql> SELECT m1 FROM t1 WHERE m1 > 2;+------+| m1 |+------+| 3 |+-

2020-08-25 14:24:09 52

原创 MySQL 使用篇 连接查询

连接查询 笛卡尔积现有t1 t2 两张表mysql> SELECT * FROM t1;+------+------+| m1 | n1 |+------+------+| 1 | a || 2 | b || 3 | c |+------+------+3 rows in set (0.00 sec)mysql> SELECT * FROM t2;+------+------+| m2 | n2 |+------+

2020-08-25 09:10:28 48

原创 MySQL 使用篇 子查询

多表查询的需求查询杜子腾的各科成绩首先查询 学生的ID,再根据id 去查询各科成绩mysql> SELECT number FROM student_info WHERE name = '杜子腾';SELECT * FROM student_score WHERE number = 20200803;将两句合并mysql> SELECT * FROM student_score \WHERE number = (SELECT number FROM student_info WH

2020-08-24 15:51:20 44

原创 MySQL 使用篇 分组查询

分别统计出 课程转行外卖骑手和 演员的素养 这两门课的平均分数SELECT AVG(score) FROM student_score WHERE subject = '转行外卖骑手';SELECT AVG(score) FROM student_score WHERE subject = '演员的素养';AVG 求平均数+------------+| AVG(score) |+------------+| 75.2500 |+------------+分组查询 group

2020-08-24 14:29:46 69

原创 MySQL 使用篇 库和表的操作

连接mysql -hlocalhost -uroot -p123456# 或者mysql --host=localhost --user=root --password=123456数据库操作# 查看一下都有哪些数据库:SHOW DATABASES; # 切换当前数据库USE 数据库名称;# 创建数据库CREATE DATABASE 数据库名;# 如果存在,则有警告提示,如果不存在则创建; 如果不太if not exists,已存在则报错。CREATE DATABASE IF

2020-08-24 10:30:58 34

原创 力扣(LeetCode) 每日一题: 20. 有效的括号

有效括号20. 有效的括号题目给定一个只包括 '(',')','{','}','[',']' 的字符串,判断字符串是否有效。解体思路判断括号的有效性可以使用「栈」这一数据结构来解决。我们对给定的 括号字符串 进行遍历,当我们遇到左括号的时候,我们就会期待遇到与其对应相同类型的右括号。栈的先入后出,可以很好的解决这个问题。首先我们创建将所有成对的括号编入到一个字典中dic = {'{': '}', '[': ']', '(': ')'}然后创建一个栈stack,专门存储我们的左括号

2020-08-14 09:58:02 86

原创 Flask 请求上下文

应用上下文和请求上下文flask 提供两种上下文:application context 和 request context 。application context 又演化出来两个变量 current_app 和 g,request context 则演化出来 request 和 session。变量名上下文说明current_app应用上下文当前应用的应用实例g应用上下文处理请求时,用作临时存储对象,每次请求都会重设这个变量request请求上下文请

2020-08-07 06:41:41 95

原创 k8s kubeadm 集群部署

k8s 集群 容器镜像准备使用kubeadm部署k8s集群,所以k8s集群的所有核心组件均以pod运行、需要准备镜像,不然初始化的时候会自动下载,时间会很长。所有用到的镜像,已经上传到百度云中链接:https://pan.baidu.com/s/1LjApqxw44q-xX–05Rs8pw提取码:6666# 查看所需要的镜像kubeadm config images listW0804 17:55:12.248884 13607 configset.go:202] WARNING:

2020-08-05 16:52:49 474

原创 k8s 环境搭建以及虚拟机准备

虚拟机准备配置静态IP地址参考 https://tenten.blog.csdn.net/article/details/103684856# 首先需要配置静态IPmaster1 10.0.10.100 192.168.56.100worker1 10.0.10.100 192.168.56.101worker2 10.0.10.100 192.168.56.102# 两个网卡配置,可能名字会不同,配置以master为例vi /etc/sysconfig/network-scrip

2020-08-04 17:10:58 242

原创 Python 获取时间戳,与本地时间不符,更改时区

Python 获取时间戳,与本地时间不符,时区不对https://www.cnblogs.com/mashuqi/p/11576705.html更改时区就可以了ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2020-08-04 10:09:32 479

原创 Python 异步操作文件 aiofiles

# 异步文件操作# pip install aiofiles# 基本用法import asyncioimport aiofilesasync def wirte_demo(): # 异步方式执行with操作,修改为 async with async with aiofiles.open("text.txt","w",encoding="utf-8") as fp: await fp.write("hello world ") print("数据

2020-07-31 16:39:03 708

原创 解决报错 Docker无法启动

启动docker服务systemctl start docker.service错误信息Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.提示执行systemctl status docker.service and journalctl -

2020-07-29 16:39:23 148

原创 Docker 修改docker存储位置 修改容器镜像大小限制

新版本这样好像快不行了,不推荐了。不行可以直接软连接去修改存储位置。vim /usr/lib/systemd/system/docker.serviceExecStart=/usr/bin/dockerd --graph=/work/docker_data --storage-driver devicemapper --storage-opt dm.loopdatasize=1000G --storage-opt dm.loopmetadatasize=10G --storage-opt

2020-07-28 14:58:44 206

原创 ELK ElasticSearch基础概念 简单了解

安装elasticsearch 依赖java jdk,需要将jdk环境安装好。elasticsearch下载https://www.elastic.co/cn/downloads/elasticsearch如果要下载历史版本,点击页面的 past releases.# 启动bin/elasticsearch# 验证访问http://localhost:9200/入门ElasticSearch 名词index索引(数据库)type类型(表)注意:​ ES 5.x 一个索引

2020-07-28 11:17:15 50

原创 Python 异步框架FastAPI

安装pip install fastapi# 部署使用pip install uvicornHello Worldfrom typing import Optionalfrom fastapi import FastAPIapp = FastAPI()@app.get("/")async def read_root(): return {"Hello": "World"}# http://localhost:8000/items/it5?q=123456# it

2020-07-27 17:37:46 178

原创 Python 类似defer 延迟调用的功能

go语言中有 deferimport "fmt"func myfunc() { fmt.Println("B")}func main() { defer myfunc() fmt.Println("A")}python 使用 上下文管理器实现同样的效果import contextlibdef func_D(k,v): print(f"{k}:{v}")def func_C(): print('C')def func_B(): prin

2020-07-27 14:23:05 79

原创 MongoDB python操作mongodb

安装 PyMongopip install pymongo连接数据库from pymongo import MongoClientclient = MongoClient()参数mongodb://用户名:密码@服务器ip:端口如指定本地地址client = MongoClient("mongodb://127.0.0.1:27017")简单使用from pymongo import MongoClientclient = MongoClient("mongodb://127

2020-07-27 11:25:44 33

原创 MongDB 通过Robo3T来快速入门mongodb

Ubuntu20.04 安装 MongDB# 安装sudo apt install mongodb# 查看状态# status start stop enable disablesystemctl status mongodb# 如果是apt方式安装 配置文件位置vim /etc/mongodb.confMongDB 图像管理软件 Robo 3T下载地址 https://robomongo.org/downloadstudiio 3T 收费版本 功能强大robo 3T 免费版本

2020-07-27 10:40:48 75

原创 Python 使用asyncio tcp

使用 asyncio streams 编写 TCP 客户端和服务端的程序回显: tcp客户端发送什么,服务端就会返回什么本程序发送一次,客户端就会自动断开。客户端import asyncioasync def tcp_echo_client(message): reader, writer = await asyncio.open_connection( '127.0.0.1', 8888) print(f'Send: {message!r}') w

2020-07-24 10:17:37 431

原创 Python asyncio官方文档 之 高级API - 协程与任务篇

asyncio — 异步 I/O¶版本:Python 3.7 +asyncio 是用来编写 并发 代码的库,使用 async/await 关键字。Hello World !import asyncioasync def main(): print('Hello ...') await asyncio.sleep(1) print('... World!')# Python 3.7+asyncio.run(main())官方目录下面是官方文档提供的asyncio

2020-07-23 23:53:24 117

原创 C++ Linux下的库(静态库与动态库)

库库就是 一种可执行代码的二进制格式,可以被载入内存执行。库可分为静态库和动态库其中动态库又叫共享库 share静态库一般以.a 结尾, 动态库一般以 .so 结尾、但不论是哪一种,都是给调用着提供 变量、函数、类的。区别静态库和动态库在实际使用中的区别静态库: 在程序编译时,静态库提供的所有变量 函数 类 都会链接合成到 一个可执行文件中。好处就是 不再有依赖问题坏处就是 编译后的可执行文件 体积比较大动态库:也叫共享库,它并不会链接到代码中,而是程序启动运行时被载入、好处

2020-07-22 11:26:17 73

原创 C++ 函数模板

函数模板#include <iostream>using namespace std;int add(int x,int y) { return x + y ;}double add(double x,double y) { return x + y;}int main() { cout << add(5,3) << endl; cout << add(5.3,3.1) << endl;

2020-07-21 14:45:34 39

原创 环境搭建 Docker内FFmpeg GPU加速

参考文档这篇文章不是在docker内的编译过程写的非常详细了,亲测可以使用注意ffmpeg版本要3.x, 我用4.3 4.2都没有成功1. 首先宿主机要有显卡驱动这里省略掉可2. 再 安装nvidia-docker3. 再下载 nvidia的基础镜像选择合适的版本,我选择的是nvidia/cuda:10.2-cudnn7-devel-centos7带devel字样的 ,里面才有nvcc -V命令10.2 是cuda版本4. 编写Dockerfile具体如何下载源码包,可以到最上.

2020-07-21 11:12:57 304

原创 C++ Libevent 链接监听器evconnlistener

普通event高级event bufferevent链接监听器 evconnlistener链接监听器 evconnlistener更高级的封装, 封装了socket,bind,listen,accept 这几个函数。struct evconnlistener *evconnlistener_new_bind( struct event_base *base, evconnlistener_cb cb, void *ptr, unsigned flags, .

2020-07-20 15:13:20 43

原创 C++ Libevent 高级事件bufferevent

bufferevent 相比于 event 比较高级的事件bufferevent有 三个事件当数据从底层的缓冲区 拷贝到应用层缓冲区,触发读回调(事件)当应用层缓冲区写入到底层缓冲区,触发写回调当你的连接 连接与断开,会触发事件回调总结1个文件描述符2个缓冲区(应用层)3个事件回调普通event0个缓冲区1个回调, 不管读写,触发的都是一个回调函数buffevent 常用的 api1.bufferevent_socket_newstruct bufferevent

2020-07-20 14:21:38 128

原创 环境搭建 virtualbox 配置ubuntu固定ip

安装 virtualbox 以及配置网卡信息https://blog.csdn.net/sunt2018/article/details/103684856修改配置# 进入目录cd /etc/netplan/# 打开此目录下的yaml文件,这个文件名可能有所不同vim /etc/netplan/00-installer-config.yaml 修改为192.168.56.110.0.10.1这两个ip是virtualbox时候配置的,具体如何操作,请看文章最上面的链接.

2020-07-18 18:05:23 98

原创 C++ Linux环境 socket编程 TCP/UDP简单示例

https://gitee.com/vtenten/cppd/tree/master/socket-exampleTCP/server.cpp#include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<sys/types.h>#include<sys/socket.h>#include<netinet/in.h&g.

2020-07-17 17:36:25 80

原创 C++ Libevent 基础

Libevent的入门基础Libevent 是 C语言编写的、轻量级事件通知库基地 event_base使用Libevent之前,需要先申请一个 event_base 结构,创建根节点struct event_base *event_base_new(viod);申请到event_base结构体,用完后,通过 event_base_free 释放void event_base_free(struct event_base *)如果你fork出一个子进程,在子进程中也想用event_base

2020-07-17 10:24:55 118

原创 Python 通过定时器,停止无线循环的线程

有一个无线循环的线程再执行任务,当外部长时间没有import threadingimport time# 定时器触发时,执行的函数,停止进程def stop_stream(live): live.stop() print("stop the rtsp stream")# 重置定时器,如果我们输入了内容,则定时器会执行cancel() 和 start(),定时器时间被重置了def listen_timer(): global timer while Tr.

2020-07-16 15:15:28 397

huoxingche.py|huoxingche.py

火星车/火星漫游车 Python版编程题

2020-08-24

shell编写 批量测试防火墙端口开通 使用telnet

# telnet ip port 批量测试多个 ip|port 每次telnet 都要手动关闭 ctrl + ] 然后 ctrl + d 很麻烦 使用 (sleep 1;) | telnet $ip $port 就能1秒自动断开了

2020-03-20

Python-RQ.md

python RQ 轻量级 消息队列 ,依赖redis 中文文档,markdown版 简介: RQ (Redis Queue)是一个简单的Python库,用于队列任务并在后台与工人(worker)一起处理它们。它由Redis提供支持,旨在降低入门门槛。它可以轻松集成到您的Web堆栈中。

2019-12-13

window版mysql +navicat

window版mysql 和 navicat for mysql,自带激活程序, 只能连接mysql数据库。

2019-01-03

Xshell+Xftp

Xshell+Xftp,绿色版,如果不能启动,请按照VC运行库。

2019-01-03

Postman网络请求工具.

windows版 postman,解压后,app中 postman.exe启动即可。

2018-12-31

空空如也

空空如也

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

TA关注的人 TA的粉丝

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