自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晓康的博客

用技术推动生活方式的改变。

  • 博客(429)
  • 资源 (3)
  • 收藏
  • 关注

原创 Python多线程使用详解及适合处理I/O密集型原理

1、如何使用多线程?实际案例:http://quotes.money.163.com/stock/,我们通过网站获取了中国股市某支股票csv数据文件,现在要下载多只股票的csv数据,并将其转换为xml文件。如何使用多线程来提高下载并处理的效率?解决方案:使用标准库threading.Thread创建线程,在每一个线程中下载并转换一只股票数据。...

2022-05-13 12:16:19 1577

原创 Python2到3字符串语义变化详解

1、字符串的语义发生了变化:python2 python3------------------------str -> bytesunicode -> strpython2中str表面含义上是字符串,实际上是抽象的一片连续的字节。为什么会这样?因为早期的计算机是由美国人发明的,最开始设计字符编码的时候也只考虑到这些英文字符。最开始使用ASCII码对这些字符进行编码,也就是一个字节表示一个字符。既...

2022-05-03 21:41:30 799

原创 一个复杂的awk处理生产数据的例子

(一)需求描述:利用awk处理日志,并声称结果报告生成数据脚本insert.sh,能够模拟生成一些日志数据,内容如下:#!/bin/bash#function create_random(){ min=$1 max=$(($2-$min+1)) num=$(date +%s) echo $(($num%$max+$min))}INDEX=1while truedo for user in allen mike jerry tracy han...

2021-12-14 11:55:03 1158

原创 Python算法之正负交替

1、题目: 给一个包含正负整数的数组,要求对这个数组中的数进行重新排列,使得其正负交替出现。首先出现正数,然后是负数,依次交替出现。有多余的数的一方,就放在末尾。如:输入 [1,2,5,-1,-5,3,-6 ]输出 [1,-1,2,-5,5,-6,3 ]要求:使用O(1)的空间思路解析:题目要求只能使用O(1)的空间复杂度,也就是只能借助一个临时变量。是看题干有两种方式进行正负交替,第一种保持正负数各自原来序列顺序不变,...

2021-12-11 16:45:50 3716

原创 Mysql中使用load data infile语句时报错ERROR 1045 (28000): Access denied for user ‘dbuser‘@‘localhost‘ (YES)

1、临时有个需求就是将TXT文本中的数据导入到Mysql数据库中验证一个问题,结果报以下错误:ERROR 1045 (28000): Access denied for user 'dbuser'@'localhost' (using password: YES)MariaDB [school]> LOAD DATA INFILE '~/Desktop/data.txt' into table student1;ERROR 1045 (28000): Access denied for ...

2021-11-10 16:13:11 2751

原创 修改内容提交到暂存区后使用git diff 命令无任何输出原因

先删除 readme.text 中的 xiaokang 内容,然后用 git diff 查看修改内容。allar@Allard MINGW64 ~/Desktop/memorandum/newrepo (master)$ git diff # 查看修改diff --git a/readme.t...

2019-08-18 18:45:50 4976 2

原创 python os.environ()和os.getenv()方法区别

os.environ() 如果环境变量不存在,则引发异常。os.getenv() 不引发异常,但返回None。os.getenv() 读取环境变量。比如,os.getenv('PATH')

2019-08-15 12:05:11 15375

原创 Python中字节串和字符串,不是一个概念没有区别之分

1.字节概念 字节(Byte )是计算机信息技术用于计量存储容量的一种计量单位,作为一个单位来处理的一个二进制数字串,是构成信息的一个小单位。最常用的字节是八位的字节,即它包含八位的二进制数。 位:(bit):是计算机 内部数据 储存的最小单位,11001100是一个八位二进制数。 字节:(byte):是计算机中 数据处理 的基本单位,习惯上用大写 B 来表示,1...

2019-07-09 15:39:09 12733

原创 Windows下python程序报错Nomodule named 'gevent'解决及ERROR: xxx.whl is not a supported wheel on this platform

在windows下面直接简单安装gevent或其他库是不行的,必须使用源码包安装。这里提供一个网址https://www.lfd.uci.edu/~gohlke/pythonlibs/,它是Windows平台下许多编译好的python模块,同时有支持32位和64位, 例如 MySQLdb,gevent....等这里以gevent库安装为例(1)在https://www.lfd....

2019-07-08 10:59:56 12028 4

原创 Linux下查看某个文件或某个命令所在位置路径

许多时候按照搜索的资料操作会出现以下问题①修改或添加配置文件内容,source运行该修改文件就会报错Error:No such file or directory(没有该文件或文件夹)。②按照资料的位置,该路径下没有要找文件夹。可能原因是系统不一样存在一些小差异位置改变或需要你自己创建。1.使用which查找命令所在位置 which用来查看当前要执行的命令所...

2019-07-07 19:42:25 23997

原创 U盘安装Windows10系统报错无法打开文件install.wim原因及解决办法

Windows无法打开所需的文件 H:\Sources\install.wim。请确保安装所需的所有文件可用,并重新启动安装。错误代码:0x8007000D

2022-11-06 11:50:28 8956 1

原创 Shell编写守护进程实现nginx服务监控

需求描述: 写一个监控nginx的脚本;如果Nginx服务宕机,则该脚本可以检测到并将进程启动;如果正常运转,则不做任何处理。1. 如何判断一个进程死掉了,分析思路如下:# Mac 启动nginx服务 ~ % sudo nginx # 通过ps -ef命令查看服务是否存在,通过grep-v参数过滤掉执行查看命令时生成grep子进程~ % ps -ef | grep nginx | grep -v grep 0 36127 1 0 11:04下午 ...

2022-05-14 11:11:14 1127

原创 Shell结合业务编写“字符串处理”脚本及思路分析

1、结合业务介绍编写字符串处理完整脚本需求描述:变量string="Bigdata process framework is Hadoop,Hadoop is an open source project"执行脚本后,打印输出string字符串变量,并给出用户以下选项:(1)、打印string长度(2)、删除字符串中所有的Hadoop(3)...

2022-05-14 10:46:13 626

原创 Python在类中定义装饰器举例详解

1、如何在类中定义装饰器实际案例:实现一个能将函数调用信息记录到日志的装饰器:[1] 把每次函数的调用时间,执行时间,调用次数写入日志;[2] 可以对被装饰函数分组,调用信息记录到不同日志;[3] 动态修改参数,比如日志格式;[4] 动态打开关闭日志输出功能。解决方案:...

2022-05-14 00:03:27 2208

原创 Python实现属性可修改的装饰器详解

1、如何实现属性可修改的函数装饰器实际案例:为分析程序内哪些函数执行时间开销比较大,我们定义一个带timeout参数的函数装饰器,timeout是一个时间阀值,比如运行时间超过1秒的都是比较慢的,这种函数比较可疑。装饰器功能如下:[1] 统计被装饰函数单词调用运行时间;[2] 时间大于参数timeout的,将此次函数调用记录到log日志中;...

2022-05-14 00:03:11 569

原创 Python定义带参数的装饰器举例详解

Python装饰器实现函数参数类型检查: 实现一个装饰器,它用来检查被装饰函数的参数类型。装饰器可以通过参数指明函数参数的类型,调用时如果检测出类型不匹配则抛出异常。

2022-05-14 00:02:55 844

原创 Python如何保留被装饰函数的元数据

在python中一切皆对象,函数也是一种对象,我们使用def或lambda语句创建函数的时候,就得到了这样一个函数对象。使用标准库functools中的装饰器wraps装饰内部包裹函数,可以指定将原函数的某些属性,更新到包裹函数上去。我们在使用装饰器后,再使用上面这些属性访问时,看到的是内部包裹函数的元数据,原来函数的元数据便丢失掉了,应该如何解决?(2)使用装饰器wraps保留原始函数的元数据。(1)函数元数据介绍。

2022-05-14 00:02:37 386

原创 Python装饰器使用场景及实现详解

某些时候我们想为多个函数,统一添加某种功能,比如计时统计、记录日志、缓存运算结果等等。定义装饰器函数,用它来生成一个在原函数基础添加了新功能的函数,替代原函数。我们不想在每个函数内一一添加完全相同的代码,有什么好的解决方案?

2022-05-13 16:56:31 546

原创 Python使用多进程和多线程执行“水仙花数”算法对比耗时时间

1、使用多线程和多进程执行一个CPU密集型任务水仙花数介绍:水仙花数就是将一个数的个位、十位、百位,拆分出来。 然后将各个位的3次方相加,结果与数字本身相同的就是水仙花数。对比多进程和多线程在执行“水仙花算法”的效率,代码如下:# _*_ encoding:utf-8 _*_from threading import Threadfrom multiprocessing import Processdef is_ar...

2022-05-13 16:53:09 842 1

原创 Python多进程Process和管道Pipe举例介绍

1、如何使用多线程?实际案例:由于python中全局解释器锁(GIL)的存在,在任意时刻只允许一个线程在解释器中运行。因此python的多线程不适合处理cpu密集型的任务。想要处理cpu密集型的任务,可以使用多进程模型。解决方案:使用标准库中multiprocessing.Process,它可以启动子进程执行任务,操作接口,进程间通信,进程间同步等,都与Thre...

2022-05-13 16:48:18 1421

原创 Python多线程和多进程不同使用场景介绍

1、多线程及多进程使用场景: 多线程介绍:如图所示,有一个进程Process,进程内部有线程T0和T1,假设这两个线程被分别调度到本地的两个cpu上,但是它们不能同时执行,只有那个线程获取了GIL锁它才有执行的权利,但另一个线程就要等待对方释放掉GIL锁才能执行,这显然是浪费CPU资源的,本来我们有多个处理器,现在在某一时刻只能有一个CPU进行工作,这是我们不希望看到的,对于这种情况我们要摆脱GIL束缚可以使用多进程。 多进程介绍:...

2022-05-13 16:42:48 853

原创 Python线程池ThreadPoolExecutor详细介绍

1、如何使用线程池? 实际案例:我们之前实现了一个多线程web视频监控服务器,我们需要对请求连接数做限制,以防止恶意用户发起大量连接而导致服务器创建大量线程,最终因资源耗尽而瘫痪。可以使用线程池,替代原来的每次请求创建线程。 解决方案:python3中有线程池实现,使用标准库中concurrent.futures下的ThreadPoolExecutor,对象的submit和map方法可以用来启动线程池中线程执行任务。 ...

2022-05-13 16:36:04 9061

原创 Python使用线程本地数据及threading.local库介绍

1、如何使用线程本地数据? 实际案例:我们实现了一个web视频监控服务器,服务器端采集摄像头数据,客户端使用浏览器通过http请求接收数据。服务器使用推送的方式(multipart/x-mixed-replace)一直使用一个tcp连接向客户端传递数据。这种方式将持续占用一个线程,导致单线程服务器无法处理多客户端请求。改写程序,在每个线程中处理一个客户端请求,支持多客户端访问。 解决方案:threading.local函数可以创建线...

2022-05-13 16:31:38 538

原创 Python线程间的事件通知Event举例详解

http://quotes.money.163.com/stock/,我们通过网站获取了中国股市某支股票csv数据文件,现在要下载多只股票的csv数据,并将其转换为xml文件。 额外需求:实现一个线程,将转换出的xml文件压缩打包,比如转换线程每生产出100个xml文件,就通知打包线程将它们打包成一个xxx.tgz文件,并删除xml文件。打包完成后,打包线程反过来通知转换线程,转换线程继续工作再生产100个xml文件再进行打包,就这样循环的过程。 解决方案: 线程间的事件通知,

2022-05-13 16:25:39 827

原创 Python线程间的线程通信举例详解

1、如何线程间通信?实际案例:http://quotes.money.163.com/stock/,我们通过网站获取了中国股市某支股票csv数据文件,现在要下载多只股票的csv数据,并将其转换为xml文件。由于全局解释器锁的存在,多线程进行CPU密集型操作并不能提高执行效率,我们修改程序架构:[1] 使用多个DownloadThread线程进行下载(I/O操作);...

2022-05-13 16:16:34 1135

原创 Python使用实例方法名调用方法

1、如何通过实例方法名字的字符串调用方法?实际案例:某项目中,我们的代码使用了三个不同库中的图形类:Circle,Triangle,Rectangle。他们都有一个获取图形面积的接口(方法),但接口名字不同。我们可以实现一个统一的获取面积的函数,使用每种方法名进行尝试,调用相应类的接口。解决方案:方法1(案例解决):使用内置函数getattr,通过名字在实例上获...

2022-05-13 12:09:07 1336

原创 Python使用弱引用weakref实现环状数据的内存管理

1、如何在环状数据结构中管理内存?实际案例:在python中,垃圾回收器通过引用计数来回收垃圾对象,但某些环状数据结构(树,图...),存在对象间的循环引用,比如树的父节点引用子节点,子节点也同时引用父节点。此时同时del掉引用父子节点,两个对象不能被立即回收。如何解决此类的内存管理问题?解决方案:使用标准库weakref,它可以创建一种能访问对象但不增加引用计...

2022-05-12 20:48:01 233

原创 Python使用描述符实现属性类型检查

1、如何使用描述符对实例属性做类型检查?实际案例:在某项目中,我们实现了一些类,并希望能像静态类型语言那样(C,C++,Java)对它们的实例属性做类型检查。 p = Person() p.name = 'Bob' # 名字属性必须是str p.age = 18 # 年龄必须是int p.height = 1.83 # 身高必须是float要求:(1)可以对实例变量名指定类型...

2022-05-12 20:42:29 373

原创 Python实现让类支持比较操作

1、如何让类支持比较操作?实际案例:有时我们希望自定义的类,实例间可以使用 ,>=,==,!= 符号进行比较,我们自定义比较的行为。例如,有一个矩形的类,我们希望比较两个矩形的实例时,比较的是他们的面积。 class Rectangle: def __init__(self, w, h): self.w =w self.h = h def area(se...

2022-05-12 20:26:22 703

原创 Python使用property函数为类创建管理方法属性

1、如何创建可管理的对象属性?实际案例:在面向对象编程中,我们把方法(函数)看作对象的接口,直接访问对象的属性可能是不安全的,或设计上不够灵活。但是使用调用方法在形式上不如访问属性简洁。# 创建圆的类,获得圆的半径或设置圆的半径,需要为这个类添加如下两个方法# 访问器和设置器形式:circle.getRadius()circle.setRadius(5.0) # 繁# 直接访问形式:circle.radiuscircle.radius...

2022-05-12 20:17:13 216

原创 Python实现上下文管理详解

1、如何让对象支持上下文管理?实际案例:我们实现了一个telnet客户端TelnetClient,调用实例的start()方法启动客户端与服务器交互,交互完毕后需调用cleanup()方法,关闭已连接的socket,以及将操作历史记录写入文件并关闭。能否让TelnetClient的实例支持上下文管理协议,从而替代手工调用cleanup()方法。解决方案:实现上下文管理协议,需定...

2022-05-12 20:12:44 849

原创 Python创建大量实例时如何节省内存

1、如何为创建大量实例节省内存?实际案例:某网络游戏中,定义了玩家类Player(id, name, status, ...),每有一个在线玩家,在服务器程序内侧有一个Player的实例,当在线人数很多时,将产生大量实例。(如百万级)如何降低这些大量实例的内存开销?解决方案:定义类的__slots__属性,它是用来声明实例属性名字的列表,减少实例的__dict__...

2022-05-12 20:07:39 455

原创 Python实现派生内置不可变类型

1、如何派生内置不可变类型并修改其实例化行为?实际案例:我们想自定义一种新类型的元组,对于传入的可迭代对象,只保留其中int类型且值大于0的元素,例如:IntTuple([1, -1, 'abc', 6, ['x', 'y'], 3]) => (1, 6, 3)。派生IntTuple新类型目的就是改变内置元组的实例化行为,因为内置元组传入[1, -1, 'abc', 6, ['x', 'y'], 3]可迭代对象...

2022-05-12 20:02:58 141

原创 Python使用xlrd和xlwt库读写excel文件详解

1、如何读写excel文件?实际案例:Microsoft Excel是日常办公中使用最频繁的软件,其数据格式为xls,xlsx,一种非常常用的电子表格。小学某班成绩,记录在excel文件中:利用python读写excel,添加"总分"列,计算每人总分。解决方案:使用pip3安装:$ pip3 install xlrd xlwt...

2022-05-12 18:29:30 3345

原创 Python使用ElementTree构建xml文件详解

1、如何构建xml文档?实际案例:某些时候,我们需要将其他格式数据转换为xml,例如,我们要把平安股票csv文件,转换成相应的xml。pingan.csv: Data,Open,High,Low,CLose,Volume,Adj Close 2016-06-30,8.69,8.74,8.66,8.70,36220400,8.70pingan.xml: <Data> <Row> ...

2022-05-12 18:19:28 1074

原创 Python解析xml文件详解

1、如何解析简单的xml文档?实际案例:xml是一种十分常用的标记性语言,可提供统一的方法来描述应用程序的结构化数据: <?xml version="1.0" encoding="utf-8" ?> <data> <country name="Liechtenstein"> <rank updated="yes">2</rank> ...

2022-05-12 18:12:42 10448 1

原创 Python读写json数据详解

1、如何读写json数据?实际案例:在web应用中常用JSON(JavaScript Object Notation)格式传输数据,例如我们利用Baidu语音识别服务器做语音识别,将本地音频数据post到Baidu语音识别服务器,服务器响应结果为json字符串:{"corpus_no":"6303355448008565863","err_mg":"sucess.", "err_n...

2022-05-08 21:15:28 13770

原创 Python读取和处理csv数据

1、如何读取csv数据?实际案例:http://quotes.money.163.com/stock/,我们可以通过网站获取了中国股市(深市)数据集,它以csv数据格式存储:请将平安银行这只股票,在2016年中成交量超过50000000的记录存储到另一个csv文件中。 Data,Open,High,Low,CLose,Volume,Adj Close 2016-06-30,8.69,8.74,8.66,8.70...

2022-05-08 21:10:37 4547

原创 Python使用标准库tmpfile库创建临时文件详解

1、如何使用临时文件实际案例:某项目中,我们从传感器采集数据,每收集到1G数据后,做数据分析,最终只保存分析结果。这样很大的临时数据如果常驻内存,将消耗大量内存资源,我们可以使用临时文件存储这些临时数据(外部存储)。临时文件不同命名,且关闭后会自动被删除。解决方案:使用标准库中tmpfile下的TemporaryFile,NamedTemporaryFile。...

2022-05-08 20:53:27 1480

原创 Python使用快捷函数或系统调用访问文件状态

1、如何访问文件的状态实际案例:在某些项目中,我们需要获得文件状态,例如:(1)文件的类型(普通文件,目录,符号链接,设备文件 ...)。(2)文件的访问权限。(2)文件的最后的访问/修改/节点状态更改时间。(4)普通文件的大小。... ...解决方案:...

2022-05-08 20:47:57 161

ScreenFlow绿色free版,仅供学习使用

ScreenFlow绿色free版,仅供学习使用

2022-02-21

Mac eclipse V2021.12 免费下载

Mac eclipse V2021.12 免费下载

2022-01-30

Python大数据大厂面试题及答案解析.doc

完善下面代码,将Node 改造成可迭代类;完善下面代码,使其支持上下文管理协议;实现一个单例模式;优化下面程序;请写一个函数,统计两个字典中每个 key 的加和值。本作者的版权所有,良心编写解答。不准私自转售。

2019-09-13

空空如也

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

TA关注的人

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