基础
文章平均质量分 86
丿氘氚
这个作者很懒,什么都没留下…
展开
-
python中对GIL的理解
深入理解Python中的GIL(全局解释器锁)1. GIL是什么?首先来看看GIL究竟是什么。我们需要明确的一点是GIL并不是Python的特性,它是在实现Python解析器(CPython)时所引入的一个概念。就好比C++是一套语言(语法)标准,但是可以用不同的编译器来编译成可执行代码。有名的编译器例如GCC,INTEL C++,Visual C++等。Python也一样,同样一段代码可以通过CPython,PyPy,Psyco等不同的Python执行环境来执行。像其中的JPython就没有GIL。然原创 2020-07-17 18:02:57 · 1126 阅读 · 0 评论 -
计算机中多进程、多线程、协程
概念介绍进程、线程、协程进程就是一个程序在一个数据集上的一次动态执行过程(数据集是程序在执行过程中所需要使用的资源)。线程也叫轻量级进程,它是一个基本的 CPU 执行单元,是比进程更小的能独立运行的基本单位。协程是一种用户级的轻量级线程。协程拥有自己的寄存器上下文和栈。协程调度切换时,将寄存器上下文和栈保存到其他地方,在切回来的时候,恢复先前保存的寄存器上下文和栈。进程和线程的关系:一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。是操作系统进行资源分配的最小单元,资源原创 2020-07-17 16:14:43 · 666 阅读 · 0 评论 -
python 多进程multiprocessing下 start启动与run启动的区别
run启动多进程import osfrom multiprocessing import Processimport timedef foo(): print("{}--->pid---->{}".format("foo", os.getpid())) print(123) time.sleep(4) print("end123")def bar(): print("{}--->pid---->{}".format("bar"原创 2020-07-13 17:21:42 · 3013 阅读 · 0 评论 -
获取上、下周的时间范围
一、将时间字符串转为datatime.data类型 import datetime, calendar, time date_str = '2020-05-11' time_tuple = time.strptime(date_str, '%Y-%m-%d') print(time_tuple) year, month, day = time_tuple[:3] print(year, month, day) current_date = datetime.原创 2020-05-14 17:24:31 · 320 阅读 · 0 评论 -
Python判断两个时间戳是否相差一个月
一、背景举例:理论上2.31与1.31相隔一个月,但是2月并没有31天。实际爬虫过程中我们又必须将满足“2.31”这一天的数据推到MQ爬取,那么该怎么控制最好呢?二、思路如上述,2月没有31号,那么我们在二月份的极限能取到几号?我们只能取到2.28或2.29。那我们是不是能理解成一个特定的时间点(如:1.31),它在下个月对应的时间与其差距最多为2月最大天数(28或29)。综上我们可以总结...原创 2020-03-30 16:11:28 · 2556 阅读 · 0 评论 -
利用logstash同步数据至elasticsearch
1.安装需要安装的应用:logstash,elasticsearch(这两项安装参考我的博客相关介绍),mysql连接器:mysql-connector-java-5.1.34.jar,下载地址:https://dev.mysql.com/downloads/connector/j/5.1.html2.配置(1)进入logstash创建目录,我这里在bin目录下创建了mysql目录将刚刚...原创 2019-12-06 18:04:34 · 362 阅读 · 0 评论 -
Centos 安装mysql5.7
1.检查检查是否已经有安装mysql这里是我安装之后的界面,在检查的时候如果已存在相关的应用,将其卸载。rpm -e 需要卸载的应用 --nodeps2.安装如果1中检查不存在相关的mysql应用的话我们继续往下,下载mysql安装包:在/usr/local目录下创建目录mysql将我们下载的安装包解压到刚刚创建的mysql目录下tar xvf ./mysql-5.7.28...原创 2019-11-30 20:28:36 · 123 阅读 · 0 评论 -
elasticsearch分词器安装
1.序言elasticsearch区别去其他存储工具的一大特色就是其强大的搜索机制,至于其具体的搜索机制运作问题我们这里不做讲解,本篇主要讲解icu分词器与ik(中文分词器)。2.ick分词器(针对亚洲多语种)安装(1)进入ES的bin目录:cd /usr/local/elasticsearch-6.4.2/bin利用elasticsearch-plugin工具进行安装icu分词在el...原创 2019-11-30 18:17:58 · 472 阅读 · 0 评论 -
CentOS7下ES-head插件安装
1.下载这里我们使用github上的代码进行安装,继续使用迂回战术,我们先将代码下载到本地后通过rz将代码上传至服务器:上传至服务器解压:unzip ./elasticsearch-head-master.zip继续将解压后的文件移动至/usr/local目录下,不要问为什么,个人习惯2.配置(1)进入elasticsearch的安装目录修改elasticsearch的配置文件...原创 2019-11-30 16:35:52 · 534 阅读 · 0 评论 -
Centos下安装logstash6.4.2
1.前叙Logstash 是一个实时数据收集引擎,可收集各类型数据并对其进行分析,过滤和归纳。按照自己条件分析过滤出符合数据导入到可视化界面。今天我们利用它来进行Mysql与Elasticsearch间的数据同步,当然该方法有时效性的缺陷。如果对时效性的要求比较高的话可以利用Mysql的binlog日志进行数据的同步,这里不做具体的介绍。2.下载由于我当前使用的Elasticsearch的版...原创 2019-11-30 15:49:42 · 582 阅读 · 0 评论 -
Centos下安装Elasticsearch 6.4.2
1.下载此次教程针对6.4.2版本:传送门,由于是歪果网站的原因,咱们这里下载速度慢的可以采取迂回政策,我们这里先下载到本地,然后上传(服务器上输入rz后选择你的文件,没有rz的自行百度安装)到服务器。解压:tar -zxvf ./elasticsearch-6.4.2.tar.gz移动: mv ./elasticsearch-6.4.2 /usr/local/将解压后的文件移动到/...原创 2019-11-29 21:23:21 · 230 阅读 · 0 评论 -
linux安装java环境
1.下载javajava安装有很多种形式,这里不推荐用yun(yum安装的应用可能配置散落在各个路径下)进行安装,我们选择下载相应的应用文件进行安装。下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html这里我们选择的java版本为1.8,因为目前市面上依赖java环境...原创 2019-11-28 19:53:18 · 136 阅读 · 0 评论 -
Linux后台运行程序
1.Linux shell1、在讲这节课之前我们先看一下linux shell的标准输入,标准输出及错误输出。Linux下习惯性的用0代表标准输入,1代表标准输出,2代表错误输出。2、紧接着我们看一下linux下重定向>(>>表示追加),通过重定向我们可以将输出重定向到我们指定的地方,例如:文件,设备。3、最后了解一下Linux下关于/dev/null这个目录的作用,对于该...原创 2019-11-28 19:04:11 · 186 阅读 · 0 评论 -
Python logging 非理想的日志输出
1.logging模块介绍1、框架的主要组成部分:Loggers: 可供程序直接调用的接口,app通过调用提供的api来记录日志Handlers: 决定将日志记录分配至正确的目的地Filters:对日志信息进行过滤, 提供更细粒度的日志是否输出的判断Formatters: 制定最终记录打印的格式布局2、代码如下:import logginglogging.debug('l...原创 2019-11-25 11:28:52 · 280 阅读 · 0 评论 -
Git远程仓库创建
1. Git安装yum install git2.创建Git用户adduser git3.创建ssh证书有关ssh证书的创建可有可以,有证书省去每次操作验证账号密码,无证书则每次git操作需要对账号进行验证,这里给出相关的配置:1、回到本地进行公钥和私钥的配置:ssh-keygen -t rsa -C "你的邮箱地址"此时回到本地C盘用户目录下面会看见一个.ssh的隐藏文件(如果...原创 2019-11-15 15:51:41 · 241 阅读 · 0 评论 -
Git常用命令
git branch 查看本地所有分支git status 查看当前状态git commit 提交git branch -a 查看所有的分支git branch -r 查看远程所有分支git commit -am “init” 提交并且加注释git remote add origin git@192.168.1.119:ndshowgit push origin master 将文件...原创 2019-09-25 14:26:01 · 461 阅读 · 0 评论 -
Python 使用requests中文乱码问题
一、首先我们要知道的一个知识点:《HTTP权威指南》里第16章国际化里提到,如果HTTP响应中Content-Type字段没有指定charset,则默认页面是’ISO-8859-1’编码。这处理英文页面当然没有问题,但是中文页面,就会有乱码了!import requests# req = requests.get("http://www2.nkfust.edu.tw")req = reque...原创 2019-05-23 15:00:23 · 2627 阅读 · 0 评论 -
python正则表达式\b与\B的区别
正则表达式中\b与\B的区别\b匹配单词边界,\B匹配非单词边界。“单词”所指的为Unidcode 的字母数字或下横线字符。下面通过实例来解释二者的区别:import res = " ever "print(re.findall(r'\bever\b', s))此时的输出结果是:[‘ever’,证明此时空格在本次匹配中并不影响,正则成功匹配出字符串s中的ever假如说我们在后面在添...原创 2019-06-10 22:14:34 · 2031 阅读 · 1 评论 -
python多进程下运行类方法的坑
多进程运行类方法:通常情况下我们习惯运行多进程的方法是导入multiprocessing包,进而创建多进程并运行start方法进行启动。这个操作直接运行某个函数是没有错的,例如:def like_cheese(): pid = os.getpid() print(pid) for i in range(10): print(i) ti...原创 2019-06-25 10:45:58 · 6930 阅读 · 16 评论 -
windows下mongodb复制集创建
下载mongodb,这里给出mongo官网自行下载http://www.mongodb.org在自己的安装目录下新建一个data目录用来保存mongodb的数据文件,配置文件和日志文件,如图所示接着我们在data目录下创建db(保存数据文件夹),conf(保存配置文件夹),log(保存日志文件夹)如图所示到此为止我们就可以正式开始配置复制集。mongodb的启动当时有多种...原创 2019-07-12 17:29:00 · 349 阅读 · 0 评论 -
windows下elasticsearch的安装与相关配置
首先我们去elasticsearch官网下载相应的版本,这里我下载的是elasticsearch7.0版本,安装,第一步完成。安装完毕后再你的安装目录下会生成如图所示的文件夹,其中bin文件主要存放的是我们的启动文件,config文件夹存放的就是我们的配置文件,data,logs,分别存放数据与日志信息。其次安装java并配置相应的环境变量,这里给出java安装网址自行下载安装。...原创 2019-07-12 18:59:50 · 558 阅读 · 0 评论 -
Django+uwsgi+nginx环境部署
一.Django运行环境的部署:首先安装pythonwget https://www.python.org/ftp/python/3.6.6/Python-3.6.6.tgz解压tar -zxvf Python-3.6.6.tgz进入 Python-3.6.6路径,编译安装到指定路径./configure --prefix=/usr/local/python3/usr/local...原创 2019-07-05 15:23:20 · 127 阅读 · 0 评论 -
Python3 url域名获取
Python3 url域名获取通过内置模块urllib进行获取:from urllib.parse import urlparseurl = "http://zhidao.baidu.com"print(urlparse(url))输出信息:ParseResult(scheme=‘http’, netloc=‘zhidao.baidu.com’, path=’’, params=...原创 2019-08-06 18:30:27 · 909 阅读 · 0 评论 -
装饰器的使用
装饰器的简单实用:通过装饰器在函数运行前判断当前代码运行的环境从而执行相应的业务逻辑import platformdef judge_platform(func): def add_env_parameter(a, b): if platform.system() == "Windows": env = "Windows" e...原创 2019-08-26 12:31:18 · 89 阅读 · 0 评论 -
python中关于TypeError: can't pickle instancemethod objects的错误解决方案
python中关于TypeError: can’t pickle instancemethod objects的错误解决方案在本人关于多进程下运行类方法一文中有遇到上述错误,通过相关搜索了解到,可能是我们在实例化多进程对象的过程中,实例化对象的某些属性没有办法序列化导致。下面通过具体的代码进行实例化对象是否存在不能序列化现象的验证。首先在类中定义如下的方法:def __getstate_...原创 2019-08-27 23:59:00 · 1813 阅读 · 0 评论 -
MongoDB组合索引
1、组合索引的概念组合索引就是一个索引结构里面包括一个集合文档的多个字段,如{‘a’:1,‘b’:-1},该类索引的创建的主要目的就是提升数据库的查询速度。2、创建人生第一个组合索引创建组合索引的语法格式如下:db.collection.createIndex({‘field’:1,‘field’:-1}) 按照格式即可创建组合索引。后台进行索引创建:因为索引创建对于mongo来说开销是非...原创 2019-08-31 11:21:48 · 698 阅读 · 0 评论 -
python按照日志等级将日志输出至不同的日志文件
将日志按照等级分别保存在不同的文件中,并在控制台同步输出。import osimport sysimport loggingfrom logs.multiprocessloghandler import MultiprocessHandlerdef loggerDefine(platform, log_name): base_dir = "F:\PythonProject\\...原创 2019-09-06 14:34:27 · 2056 阅读 · 5 评论 -
Python利用Matplotlib画图并保存的过程中出现空白现象解释以及相应解决方案。
利用Matplotlib画图并保存时出现空白图案。import pandas as pdimport matplotlib.pyplot as plt# Import Datadf = pd.read_csv('https://github.com/selva86/datasets/raw/master/AirPassengers.csv')# Draw Plotplt.figure(...原创 2019-09-12 15:35:54 · 5323 阅读 · 1 评论 -
Python日志
保存日志的同时将日志输出到控制台1、基本代码 1 import logging 2 3 # 创建一个logger 4 logger = logging.getLogger('mylogger') 5 logger.setLevel(logging.DEBUG) 6 7 # 创建一个handler,用于写入日志文件 8 fh = logging.FileHandler('tes...原创 2019-05-22 17:32:01 · 148 阅读 · 0 评论