自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 c++ 无锁线程安全stack

最近看了本多线程的书, 记录下笔记#include <atomic>#include <memory>#include <thread>#include <future>#include <vector>#include <chrono>namespace lock_stack { template<typename T> class lock_free_stack { private

2022-01-22 16:16:17 560

原创 python协程 同步函数的异步使用

import subprocessimport asyncioimport timedef get_cmd(cmd): proc = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE) out, err = proc.communicate() return out, errasync def main(cmd): l = asyncio.get_event_loop() future =

2021-09-21 22:17:56 820

原创 c++ 互斥量的常见问题(未保护共享数据)

namespace mutex_invalid { void func_asign(void(*func)(int&), int& data) { std::cout << "in func: " << data << std::endl; func(data); // data 传入的本意可能只是在线程中使用, 而不是修改 } void func_asign_test(int& num

2021-09-17 22:59:35 128

原创 c++ 文件对比

#include <iostream>#include <fstream>#include <cstring>#include <cstdio>/*pos, file1 偏移量pos1, file2 偏移量end, 对比的字符个数*/bool compare_file(const std::string &f1, const std::string &f2, size_t pos=0, size_t pos1=

2021-06-10 17:58:01 770

原创 django 从零开始之模型 关联关系及常见字段

0. 如何生成一个可移动的模型在添加了新的模板后, 使用前文提到的生成一个可读模板的命令:python manage.py makemigrations这次的代码新加了Person 类, 即模型1.常见的字段类型class Person(models.Model): id = models.IntegerField(primary_key=True) # id = models.AutoField(primary_key=True) first_name

2021-03-22 21:31:56 198

原创 django 从零开始系列四 简单应用的升级

有些事情, 忙不过来, 先放代码, 之后再解释polls/views.py:from django.shortcuts import get_object_or_404, renderfrom django.http import HttpResponse, HttpResponseRedirectfrom django.urls import reversefrom django.views import genericfrom .models import Question, Choice

2021-03-14 18:27:00 63

原创 django 从零开始系列四 编写一个简单的django应用

先上代码, 然后解释, 如有错误, 欢迎指正1. 代码polls/views.pyfrom django.shortcuts import get_object_or_404, renderfrom django.http import HttpResponsefrom .models import Question# Create your views here.def index(request): latest_question_list = Question.object

2021-03-11 22:42:33 80

原创 django 从零开始系列三 django管理页面

1. 创建管理员运行以下命令, 开始创建管理员python manage.py createsuperuser启动django, 访问 http://127.0.0.1:8000/python .\manage.py runserver2. 加入应用修改 polls/admin.pyfrom django.contrib import adminfrom .models import Question# Register your models here.admin.si

2021-03-09 21:16:25 94

原创 django 从零开始系列二 数据库及模型

1. 数据库配置mysite/settings.py 文件中, 数据库配置如下常见的engine :django.db.backends.sqlite3django.db.backends.postgresqldjango.db.backends.mysqldjango.db.backends.oracle开启一个数据库python manage.py migratemysite/settings.py 中的 Installed_apps 配置了 django 中的应用

2021-03-07 21:53:04 83

原创 Django 从零开始系列一 安装并创建 django服务

因为工作原因一直没有机会使用这款传说级别的框架, 打算抽时间专门学习, 本系列主要对照官网的文档, 加上自己的一些理解1. 安装pip install django执行 python -m django --version, 返回django 版本号, 表示安装成功2. 通过命令行创建项目# 创建一个空目录, 进入目录, 执行django-admin startproject mysite创建的目录结构如下manage.py: 一个让你用各种方式管理 Django 项目的命令

2021-03-07 14:26:20 126

原创 linux 三剑客之 awk

测试文件:通俗用法:awk ‘/pattern/{print $1}’ file示例: 匹配以 root 开头的行并输出结果在上面的例子中, 如果需要以 : 分割, 则需要指定分隔符两种方式:awk -F":" '/pattern/{print $1}' fileawk 'BEGIN{FS=":"} /pattern/{print $1}' file在末尾如果还需要打印其他信息, 可以使用END{}:awk 'BEGIN{xxx} {print $} END{xxx}' f

2020-09-14 19:31:21 81

原创 linux 三剑客之sed

用法测试文件s 替换替换 s/xxx/xxx示例: 将 gggg 替换为 test替换某行为xxx ns/.*/xxxx示例: 替换第二行内容为 xxxx在某行后追加内容 ns/.*/&xxxx示例: 在第三行内容后追加 ----替换数字 s/[0-9]/xxxx (sed不支持 \d)示例: 替换数字为 ---代指某一部分使用() s/(xxx)(xxx)/\1\2/示例: 在数字与内容之间插入内容语法中的 / 可以替换为其他任意

2020-09-14 14:59:29 105

原创 linux三剑客之grep

grep用法:常规匹配:不区分大小写 -i精确查找 “\<xxxx>\”以某字符结尾 “xxx$”以某字符开头 “^xxx”显示行号 -n显示匹配字符的后几行 -A n显示匹配字符的前几行 -B n显示匹配字符的上下文 -C n静默查找, -q如果文件不存在, 静默查找仍会有输出, 如果需要静默可以考虑输出重定向grep查找结果成功返回值 0, 没有查找到返回 1, 无文件返回 2递归查找 -r/-R反向查找 -v和管道一起

2020-09-14 10:32:12 114

原创 shell while, until循环

while和until两个循环语法相同, 循环条件相反语法: while xxx do xxx done until xxx(进入循环的条件与while相反) do xxx done举例来看#! /bin/bashuntil ping -c1 127.0.0.1>/dev/nulldo echo "until test" sleep 1doneecho "until test finished"while ping -c1 127.0.0.1>

2020-08-31 10:46:29 97

原创 linux expect实现非交互式脚本

之前有个需求, 客户要批量给服务器装mongo做副本集, 在安装过程中需要手动输入一些比如ssh密码的东西, 刚好用到expect, 顺便记录自己的机子是deepin, 一些命令的过程中需要sudo 输入密码, 刚好用这个举例在启动docker容器的时候, 需要手动输入密码, 我们就用脚本代替手动输入实现启动:先看 docker container 的状态, 目前是没有启动的写脚本:#! /bin/expectspawn sudo docker ps -aexpect { "sudo

2020-08-29 14:48:45 164

原创 记录一次 linux 虚拟机扩容

自己的虚拟机环境最开始分配的空间有点小, docker占得不够用了, 记一次扩容流程可以看到, 原先虚拟机只有20G, 我们进入虚拟机设置, 扩展至40G扩展完成后, 提示需要进入系统重新分区, 接下来我们进入系统进入系统后, 可以看到当前容量只有原来的 20G通过 fdisk -l 命令可以看到, 硬盘已经扩容到 40G, 但还没有挂载到分区, 接下来我们新增一个分区接下来我们扩展分区, 操作如下:...

2020-08-28 08:12:44 111

原创 shell for循环及一些小技巧

for语法#! /bin/bashclearfor i in {1..10}do echo "for time $i"donefor循环分隔符分隔符顾名思义, 循环时以什么符号作为分隔, 默认情况下是以空格或者制表符分隔#! /bin/bashnum="1 12 23 34 4"for i in $numdo echo $idone结果可以看到, 是以空格为分隔输出的, 如果需要以行分隔, 这个时候就需要指定分隔符了#! /bin/bashnum="

2020-08-26 14:00:46 536

原创 shell case语法

一般来说, case会和read一起使用, 以esac结束, 代码如下#! /bin/bashread -p 'input num:' numcase "$num" in 1) echo "num=1" ;; 2) echo "num=2" ;; *) echo "num=$num" ;;esac执行结果:

2020-08-24 21:03:07 93

原创 matplatlib实例三 水平条形图

先瞅代码fig, ax = plt.subplots()ax.barh(1, 10, xerr=0.3, align='center')ax.barh(2, 5,)ax.barh(3, 8,)ax.set_yticks([1, 2, 3])ax.set_yticklabels(["blue", "yellow", "green"])ax.invert_yaxis() # y轴顺序翻转ax.set_title("11")plt.show()

2020-08-20 21:52:23 121

原创 matplatlib实例二 分组柱状图

label = ["A", "B", "C"]num1 = [10, 20, 16]num2 = [15, 10, 25]x = np.arange(len(label))fig, ax = plt.subplots()r1 = ax.bar(x-0.3/2, num1, 0.3, label="num1")r2 = ax.bar(x+0.3/2, num2, 0.3, label="num2")ax.set_xticks([0, 1, 2]) # list of location

2020-08-17 19:36:37 215

原创 matplotlib实例一 分段式柱状图(堆叠式柱状图)

话不多说, 先看代码labels = ['A', 'B', 'C', 'D', 'E']blue = [10, 20, 30, 40, 50]yellow = [35, 15, 25, 20, 10]blue_err = [1, 1, 1, 1, 1]yellow_err = [1, 1, 1, 1, 1]width = 0.5fig, ax = plt.subplots()ax.bar(labels, blue, width, yerr=blue_err, label='blue',

2020-08-17 00:12:22 3717 2

原创 shell 条件测试

常见方式:test[][[]]使用方法:test:test -r ./test.sh | echo $?0[]:[ -r test.sh ]; echo $?0关于[], 左括号 [ 是一个linux命令, 而右括号]仅仅是左括号的命令参数, 如下图可以看到, 左括号 [ 提示缺少右括号 ], 而右括号本身不是一个命令[[]]:语法与 [] 相同, [[]]功能更强大, 推荐使用num=1[[ $num =~ [0-9] ]]; echo %?0常用参数:

2020-08-15 16:45:03 71

原创 shell $符之$* $@ 区别

上篇文章有坑, 填在字符串中(在" "中), $@可以理解为将位置参数放在一个数组里, 各是各的$*类似于字符串连接, 将个位置参数的值拼接在一起, 是一个整体如果是直接引用 $@ 或者 $* 两者不会出现以下区别具体代码:...

2020-08-15 14:02:38 188

原创 shell中的 $符变量

预定义变量:$0 脚本名称$! 上一个后台进程的PID$$ 当前进程PID$? 上一个命令返回值$# 参数个数$* $@ 所有的参数(具体什么区别不清楚...)位置变量$1 $2 ... $n示例:

2020-08-12 11:10:59 76

原创 matplotlib 学习二(读取图片)

import matplotlib.cbook as cbookimport matplotlib.pyplot as pltwith cbook.get_sample_data('1.png') as image_file: # 原生只支持png格式 image = plt.imread(image_file)fig, ax = plt.subplots()ax.imshow(image)ax.axis('off') # 不展示坐标系...

2020-06-08 20:52:23 425

原创 matplotlib 学习一

import matplotlibimport matplotlib.pyplot as pltimport numpy as npt = np.arange(0.0, 2.0, 0.01)s = 1 + np.sin(2 * np.pi * t)fig, ax = plt.subplots() # 创建一个figure 和 多个子图ax.plot(t, s)ax.set(xlabel='time(s)', ylabel='voltage(mV)', title="this is tit.

2020-05-19 20:39:00 124

空空如也

空空如也

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

TA关注的人

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