入门
freesonWANG
这个作者很懒,什么都没留下…
展开
-
logging 日志同时输出到控制台(踩坑:python2 vs python3使用差异)
一段python3 生效的代码:import loggingfor handler in logging.root.handlers[:]: logging.root.removeHandler(handler)logging.basicConfig( level=logging.DEBUG, format="%(asctime)s-[%(levelname)s]-%(message)s", handlers=[ logging.FileHandler("log"), logging原创 2022-04-26 20:34:37 · 1263 阅读 · 1 评论 -
shell 判断路径是否存在是否为空
shell,路径管理原创 2022-04-18 21:38:34 · 489 阅读 · 0 评论 -
bash shell 判断环境变量不存在/为空
bash shell 判断环境变量不存在/为空判断环境变量不存在env | grep ^VERNAME=if test $? -ne 0;then echo "VAR VARNAME not exis in env "else echo "$VARNAME"fi判断环境变量为空或者不存在(可以判断普通变量,但是区分不了不存在和值为空)if test -z "$VARNAME";then echo "VARNAME is null string or VARNAME not原创 2021-01-08 18:10:10 · 6090 阅读 · 0 评论 -
mysql数据复制、导出、备份和主从同步
复制数据复制数据结构及数据mysql>create table new_table_name as select * from old_table_name;只复制结构mysql>create table new_tabe_name as select * from old_table_name where 1=2;或者mysql>create table...原创 2019-12-06 18:07:59 · 426 阅读 · 0 评论 -
java实现简单的日志打印
实现原理:java.lang.Throwable类可以实时获取当前调用栈每一层调用的详细信息,包括文件名、类名、方法名和行号。示例代码:public class LocalLog { public static void log(String log){ StackTraceElement[] stacks = new Throwable().getStackTra...原创 2019-11-29 01:24:13 · 727 阅读 · 0 评论 -
pyhton中的yield关键字的作用
翻译自: https://stackoverflow.com/questions/231767/what-does-the-yield-keyword-do基本理解为了理解yield管自己的作用,你需要先理解什么是生成器(generators).理解生成器之前,需要先理解可迭代对象(iterables)可迭代对象(iterables)当你创建一个list对象时,你可以逐个成员去遍历,这种逐...原创 2019-11-28 15:00:33 · 339 阅读 · 0 评论 -
数独计算脚本(基本9X9)
https://github.com/wangflying/sudoku_cal.gitsudoku_cal简单数独计算procedure:遍历空节点:计算横排、竖排和九宫格集合的余集,若唯一值,填入当前节点若余集长度不为1: 遍历余集每一个值, 计算同一个九宫格中其他格子是否可以填入当前值,若否,当前值填入当前阶段,若是,继续循环author: Figo Wangd...原创 2019-08-25 14:47:46 · 2160 阅读 · 1 评论 -
用冷备数据和主从同步机制迁移大数据量单点MySQL数据库
背景:历史服务数据库迁移,单点数据库,数据量约100G,其中业务60G数据为写入后不会改变的只读数据(历史运行结果,以天为单位保存90天),40G的数据为会持续更新的数据。数据库只有静态备份的sql 压缩文件。数据库开了bin-log设置,会记录binlog迁移难点:各个子业务数据库之间存在依赖,不能单个子业务逐个迁移,需要整体迁移;数据导入新数据库耗时严重(数据行数比较多,完整备份数据全部导...原创 2019-08-14 20:15:17 · 824 阅读 · 0 评论 -
常见排序算法的python实现
class SortTools(): def __init__(self): pass def bubble_sort_one(self, src_list): list_len = len(src_list) for i in range(0, list_len-1): if ...原创 2019-08-18 16:34:40 · 107 阅读 · 0 评论 -
python/php/bash shell 实现 base64编码和解码
php<?php$in_src="TESTcftXian029okp123key";$en_out=base64_encode($in_src);echo "encoded str:";echo $en_out;echo "\n";$de_out=base64_decode($en_out);echo "decoded str:";echo $de_out;echo ...原创 2019-07-23 10:54:55 · 1262 阅读 · 0 评论 -
使用nginx和uwsgi配置 diango 服务
安装uwsgi:pip install uwsgi安装nginx: yum install nginx使用uwsgi启动django服务原创 2019-07-30 21:15:17 · 177 阅读 · 0 评论 -
mysql db支持保存中文字符串
数据库字符集设置为utf-8mysql> alter database mydb character set utf8;mysql> alter database mydb collate utf8_general_ci;创建新数据库:mysql> create database mydb default character set utf8;...原创 2019-05-27 20:47:21 · 704 阅读 · 0 评论 -
使用rapidjson将pb文件转换为json格式
代码地址:https://github.com/wangflying/pb2json_convertor.git原创 2019-08-25 17:40:02 · 1459 阅读 · 0 评论 -
shell脚本中使用sftp下载文件
示例代码:lftp -u username,password sftp://10.123.118.203:20030<<EOF1set xfer:clobber onlcd /data/tmp/ft_local/test/get /Test/fx_exchange_web/V3.0D00381/fx_exchange_web_V3.0D00381.zipbyEOF1说明...原创 2019-08-21 18:01:23 · 3619 阅读 · 0 评论 -
bash shell统计代码行数
命令:find . -name "*.py" |xargs cat |grep -v "^\s*$" | grep -v "^\s*#"|wc -l缺点:三引号包裹的多行注释识别不出来原创 2019-08-30 15:14:37 · 499 阅读 · 0 评论 -
vim替换操作
vim替换操作vim命令行模式支持各种替换操作,列一些常用的模式::s/str1/str2 搜索光标所在行第一个str1字符串,并替换为str2:s/str1/str2/g 搜索光标所在行所有的str1字符串,全部替换为str2:s/str1/str2/ig 搜索光标所在行所有的str1串(忽略大小写),并全部替换为str2:%s/str1/str2/cg 搜索全文中所有的s原创 2017-12-20 21:18:07 · 4199 阅读 · 0 评论 -
hashmap学习笔记
初始化:分配一个大小为2^n的数组空间,每个节点是一个链表存储:计算key对应的hashcode根据hashcode,计算出对应值在数组中的存放位置将key和value存到对应的数组位置,如果对应的位置已经存在元素,在链表上添加节点,如果节点数超过8,链表自动转换为红黑树的方式存储读取:根据key计算hashcode根据hashcode计算存放位置index根据index读...原创 2019-09-28 18:30:18 · 250 阅读 · 0 评论 -
Linux PS1设置
Linux PS1参数可以设置bash命令行显示的提示符示例export PS1="\[\e[33;1m\][\u\[\e[31;1m\]@\[\e[33;1m\]\h \[\e[36;1m\]\W\[\e[32;1m\]]\[\e[34;1m\]\$ \[\e[0m\]"其中:\u : 显示用户名\h :显示机器名\W: 当前路径名,只显示一层, \w: 当前路径名,从用户跟路径...原创 2019-09-20 10:31:39 · 1085 阅读 · 0 评论 -
c代码画心
抄一段Milo大神画心的代码#include <stdio.h>int main() { for (float y = 1.5f; y > -1.5f; y -= 0.1f) { for (float x = -1.5f; x < 1.5f; x += 0.05f) { float a = x * x + y * y -...原创 2019-09-19 23:57:17 · 2203 阅读 · 0 评论 -
Linux查看使用swapfile的进程信息
超了一个脚本,原文:https://blog.csdn.net/m0_37886429/article/details/73826868test.shfor i in $(ls /proc | grep "^[0-9]" | awk '$0>100')do awk '/Swap:/{a=a+$2}END{print '"$i"',a/1024"M"}' /proc/$i/sm...转载 2019-09-18 22:49:31 · 414 阅读 · 0 评论 -
django model新增/更新数据
django model:class Poll(models.Model): name= models.CharField(max_length=255, unique=True, verbose_name='name') description = models.CharField(max_length=255, unique=True, verbose_name='descr...原创 2019-09-05 12:23:49 · 3378 阅读 · 0 评论 -
pyenv安装
pyenv时用来管理开发环境python版本的工具,配合virtualenv可以搭建完善的python虚拟环境安装:git clone https://github.com/pyenv/pyenv.git ~/.pyenv/echo 'export PATH=~/.pyenv/bin:$PATH' >> .bashrcecho 'export PYENV_ROOT=~/.pye...原创 2019-09-05 12:00:39 · 476 阅读 · 0 评论 -
redis 指定ip、持久化、主从复制和集群
Redis指定支持访问的ipredis支持限定网卡,不支持指定到某一个具体的ipbind 127.0.0.1 表示对本机运行访问;bind 0.0.0.0表示对所有的ip开放,但是对所有ip开发存在较大数据风险指定ip访问一般通过iptables实现,使用iptables限定特定ip可访问redis-server的端口redis持久化:Rdb快照模式配置:#vim /etc...原创 2019-09-04 13:10:47 · 621 阅读 · 0 评论 -
python3 计算字符串md5
>>> import hashlib>>> a='111000'>>> b=hashlib.md5(a.encode('utf-8')).hexdigest()>>> b'a66d92cacbcb69c63a629611a1558195'转载 2019-05-27 20:40:59 · 4827 阅读 · 0 评论 -
pyhon 通过字符串加载执行函数
python的变量和函数名保存在与名字空间中,python执行代码时,会遍历局部名字空间、全局名字空间和内置名字空间来加载变量和函数。对于一个字符串,如果已知这个字符串是个函数名,并且知道其参数结构,我们可以直接去命名空间查找这个字符串对应的函数并调用, python的locals()和globals()函数为我们提供了局部和全局名字空间的加载方法, 这两个函数返回的结果可以像dict一样用ke...原创 2019-05-20 13:29:14 · 286 阅读 · 0 评论 -
c++ string startsWith endswith
模拟一下#include<string>#include<iostream>using namespace std;int startsWith(string s, string sub){ return s.find(sub)==0?1:0;}int endsWith(string s,string sub){ ret...原创 2018-06-14 21:02:39 · 24776 阅读 · 1 评论 -
source insight 修改编辑页面字体
方式1:整体修改菜单栏选择 “options -> Document Options...”点击 “Screen Fonts...”选择需要的字体后确认方式2:特性修改菜单栏选择 “options -> style properties...”选择需要修改的style,比如“comment”,修改制定style的字体配置...原创 2018-06-07 11:17:19 · 891 阅读 · 0 评论 -
c++ 获取时间串
一个获取时间串的函数示例#include<string>#include<ctime>#include<iostream>#include<cstdio>using namespace std;string dayString(){ time_t now = time(0); cout<<ctime(...原创 2018-05-28 22:36:24 · 263 阅读 · 0 评论 -
Java HttpsURLConnection忽略crt访问https链接
访问https时,需要验证ssl证书,使用HttpsURLConnection访问一个我们已经信任的https页面,需要跳过crt验证时,可以参考如下代码public static void main(String argv[]){ String urlStr = "https://github.com/Unknwon/go-fundamental-programming"原创 2018-02-04 18:09:23 · 2520 阅读 · 0 评论 -
Java HttpURLConnection使用proxy访问url
不使用proxy时代码: public static void main(String argv[]){ String urlStr = "https://www.csdn.net/"; try { URL url = new URL(urlStr); HttpURLConnection connecti原创 2018-02-04 17:39:22 · 7318 阅读 · 2 评论 -
mysql 中any,some,all,in的用法
INSELECT count(*) FROM world.country where Name IN (SELECT Name FROM world.country where Name like "C%"); 匹配子集中的任一元素NOT INSELECT count(*) FROM world.country where Name NOT IN (SELECT Name FROM world.c原创 2017-12-12 21:34:18 · 6283 阅读 · 0 评论 -
Java反射原理小记
Java反射原理简述原理Java代码编译的.class文件中,包含程序员开发的类的全部信息。大多数情况下我们编写的类在编译时就会被加载到Jvm虚拟机中,但也有运行时加载的情况,加载的方式包括ClassName.class、object.getClass()、Class.froName(“className”)等。 无论是编译时还是运行时,Jvm调用classLoader加载一个类时都会为这个类生成原创 2017-11-23 22:09:36 · 439 阅读 · 0 评论 -
Java 内部类和闭包
内部类(inner class)public class Outer{ private String name; class Inner{ public String getOuterName(){ return Outer.this.name; } public void setOuterName(String原创 2017-11-18 19:46:19 · 865 阅读 · 0 评论 -
mysql之char、varchar和text
char、varchar和text是mysql数据库中使用的三种字符串类型,简述一下三者之间的区别。- char(n)定长字符串,n表示字符数上限,超过存储上限字符会被截断。n也是存储空间的实际长度,不管实际字符串有多长,都会占用n个字符的空间,长度上限是255个字节。需要注意的是,char(n)里面的n表示的是字符数,而不是字节数,因此n的上限并不是255,以utf-8格式存储中文字符为例,每个原创 2017-11-12 20:07:22 · 4170 阅读 · 0 评论 -
Java入门学习:实现日志方法(记录代码文件名,类名,方法名,行号)
实现原理: java.lang.Throwable类可以实时获取当前调用栈每一层调用的详细信息,包括文件名、类名、方法名和行号。 示例代码:public class LocalLog { public static void log(String log){ StackTraceElement[] stacks = new Throwable().getStackTrace原创 2017-06-03 14:25:26 · 1089 阅读 · 0 评论 -
java入门学习:多线程创建-Thread,Runnable,callable和threadpool
java创建多线程的方式有许多种,这里简要做个梳理1. 继承Thread类 继承java.lang.Thread类,创建本地多线程的类,重载run()方法,调用Thread的方法启动线程。示例代码如下:MyThread.javapublic class MyThread extends Thread { public void run(){ private int copy原创 2017-05-30 18:09:30 · 459 阅读 · 0 评论 -
c 使用mkdir()函数创建路径
参考代码:#include<sys/stat.h>#include<iostream>using namespace std;int main(){ char* filepath = "/home/tt/test/"; mode_t mode = umask(0); mkdir(filename,0777); //do somet...原创 2018-06-24 17:20:21 · 18513 阅读 · 3 评论 -
Tmux常用快捷键
TMUX常用快捷键ctrl+b % #左右分屏ctrl+b " #上下分屏ctrl+b o #顺时针旋转切换工作分屏ctrl+b ctrl+o#顺时针旋转移动工作分屏ctrl+b space #分屏排列切换ctrl+b x #关掉当前分屏终端ctrl+b z #最大化/复原当前分屏(v1.8以后版本)ctrl+b c #新建窗口ct...原创 2018-10-11 15:54:28 · 910 阅读 · 0 评论 -
jango model.obejcts.filter 查询指定字段
django model.obejcts.filter()查询指定字段model.obejcts.filter(key=value).values(‘field_name’)返回: [ { 'field_name': value1 }, { 'field_name':value2 } ]model.obejcts.filter(key=value)...原创 2019-04-30 11:53:53 · 4587 阅读 · 0 评论 -
python判断变量类型
1. isinstance()>>> x = isinstance("hello",(float,str,int,dict,list,tuple,bool))>>> xTrue>>> x=(1,2,3,4)>>> isinstance(x,dict)False>>> isinstanc...原创 2019-04-23 11:19:42 · 10766 阅读 · 0 评论