python
lislislislislis
这个作者很懒,什么都没留下…
展开
-
python进程池pool
进程池Pool当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态成生多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数...原创 2019-04-15 18:44:28 · 162 阅读 · 0 评论 -
python进程间的通信queue
进程间通信-QueueProcess之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。Queue的使用可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:#coding=utf-8from multiprocessing import Queueq=Queue(3...原创 2019-04-15 18:42:25 · 184 阅读 · 0 评论 -
python找出一个列表中相同元素的多个索引
如果直接用X.index(1),只能得到0这一个索引,而我们需要所有索引.l = len(X)zip_list = zip(*(range(l),X))id1 = [z[0] for i,z in enumerate(zip_list) if z[1]==1]或者更简单的id1 = [i for i,x in enumerate(X) if x==1]作者:Kerrwy来源:CSDN...原创 2019-04-08 17:13:47 · 5295 阅读 · 0 评论 -
Python eval 函数妙用
eval功能:将字符串str当成有效的表达式来求值并返回计算结果。语法: eval(source[, globals[, locals]]) -> value参数:source:一个Python表达式或函数compile()返回的代码对象globals:可选。必须是dictionarylocals:可选。任意map对象实例展示:可以把list,tuple,dict和strin...原创 2019-04-02 17:24:00 · 168 阅读 · 0 评论 -
python 中给文件加锁,fcntl模块
如果没有fcntl模块则用sudo pip install fcntl安装模块简单说明:打开文件,不存在则创建之 f = open(’./test’,‘w’) fcntl.flock(f,fcntl.LOCK_EX) 这样就对文件test加锁了,如果有其他进程对test文件加锁,则不能成功,会被阻塞,但不会退出程序。 解锁:fcntl.flock(f,fcntl.LOCK_U...原创 2019-04-02 17:16:23 · 2905 阅读 · 0 评论 -
Python进程、线程、线程之间的关系
一、从操作系统角度 操作系统处理任务, 调度单位是 进程 和 线程 。1.进程: 表示一个程序的执行活动 (打开程序、读写程序数据、关闭程序)2.线程: 执行某个程序时, 该进程调度的最小执行单位 (执行功能1,执行功能2) 一个程序至少有一个进程 一个进程至少有一个线程1.并行: 需要处理的任务数 == CPU核心数量 两个任务 两个核心 任务1:------------- 任务2:---...原创 2019-04-02 17:07:24 · 1018 阅读 · 0 评论 -
python中format函数应用
format函数是一种格式化字符串的函数str.format(),此函数可以快速处理各种字符串。语法它通过{}和:来代替%。请看下面的示例,基本上总结了format函数在python的中所有用法#通过位置print '{0},{1}'.format('chuhao',20)print '{},{}'.format('chuhao',20)print '{1},{0},{1}'.f...原创 2019-04-02 17:05:49 · 1712 阅读 · 0 评论 -
python 并发和线程
并发和线程基本概念 - 并行、并发并行, parallel互不干扰的在同一时刻做多件事;如,同一时刻,同时有多辆车在多条车道上跑,即同时发生的概念.并发, concurrency同时做某些事,但是强调同一时段做多件事.如,同一路口,发生了车辆要同时通过路面的事件.队列, 缓冲区类似排队,是一种天然解决并发的办法.排队区域就是缓冲区.解决并发:【 “食堂打饭模型”, ...原创 2019-04-08 10:16:34 · 203 阅读 · 0 评论 -
Python读写文件
Python读写文件Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法。比如可以用try/finally语句来确保最后能关闭文件。file_object = open(‘thefile.txt’)try:all_the_text = file_object.read( )finally:file_object.close( )注:不能...原创 2019-04-07 21:07:19 · 401 阅读 · 1 评论 -
python中dict操作集合
python中dict操作集合字段是Python是字典中唯一的键-值类型,是Python中非常重要的数据结构,因其用哈希的方式存储数据,其复杂度为O(1),速度非常快。下面列出字典的常用的用途.一、字典中常见方法列表复制代码代码如下:#方法 #描述D.clear() ...原创 2019-04-07 21:05:28 · 1172 阅读 · 0 评论 -
python进程池实现文件夹copy器(多进程版)
应用:文件夹copy器(多进程版)import multiprocessingimport osimport timeimport randomdef copy_file(queue, file_name,source_folder_name, dest_folder_name): """copy文件到指定的路径""" f_read = open(source_fo...原创 2019-04-15 18:47:27 · 300 阅读 · 0 评论 -
python协程迭代器
迭代器迭代是访问集合元素的一种方式。迭代器是一个可以记住遍历的位置的对象。迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器只能往前不会后退。1. 可迭代对象我们已经知道可以对list、tuple、str等类型的数据使用for…in…的循环语法从其中依次拿到数据进行使用,我们把这样的过程称为遍历,也叫迭代。但是,是否所有的数据类型都可以放到for…in…的语句中,然后...原创 2019-04-15 18:57:16 · 146 阅读 · 0 评论 -
python协程生成器
生成器利用迭代器,我们可以在每次迭代获取数据(通过next()方法)时按照特定的规律进行生成。但是我们在实现一个迭代器时,关于当前迭代到的状态需要我们自己记录,进而才能根据当前状态生成下一个数据。为了达到记录当前状态,并配合next()函数进行迭代使用,我们可以采用更简便的语法,即生成器(generator)。生成器是一类特殊的迭代器。创建生成器方法1要创建一个生成器,有很多种方法。...原创 2019-04-15 19:09:29 · 238 阅读 · 0 评论 -
sourceTree安装与使用
1,下载并安装 sourceTreehttp://downloads.atlassian.com/software/sourcetree/windows/SourceTreeSetup_1.6.14.exe双击安装,安装前要确认 安装了git或是Mercurial。 这里选择git,也可以不选择,等安装完成后也可以再选。2,安装完成,会弹出如下对话框,你可以选择自动下载。我用的是git 直接...原创 2019-06-05 20:17:53 · 325 阅读 · 0 评论 -
pycharm常用快捷键
1、编辑(Editing)Ctrl + Space 基本的代码完成(类、方法、属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P 参数信息(在方法中调用参数)Ctrl + Q 快速查看文档F1 外部文档Shift + F1 外部文档,进入web文档主页Ctrl + Shif...原创 2019-05-30 12:28:16 · 196 阅读 · 0 评论 -
前端css小结
标签按照显示的效果可以分为:块元素标签:默认占有一行内联元素标签:默认可以排列在一行常用html标签:1、h1~h6: 标题标签,块元素标签,含有默认样式2、P: 段落标签,块元素标签,含有默认样式3、字符实体:如果想在网页上显示空格,“<”个“>”, 不能直接在代码中写,需要写成它们的字符实体,空格: 小于号:< 大于号 >4、di...原创 2019-05-13 08:58:25 · 187 阅读 · 0 评论 -
mysql查询操作
– 数据的准备– 创建一个数据库create database python_test charset=utf8;-- 使用一个数据库use python_test;--显示使用的当前数据库是哪个?select databases();--创建一个数据表-- students表create table students( id int unsigned primary...原创 2019-04-27 08:45:18 · 189 阅读 · 0 评论 -
mysql基础
– 数据库的操作-- 链接数据库mysql -uroot -pmysql -uroot -pmysql-- 退出数据库exit/quit/ctrl+d-- sql语句最后需要有分号;结尾-- 显示数据库版本select version();-- 显示时间select now();-- 查看所有数据库show databases;-- 创建数据库-- cre...原创 2019-04-27 08:44:32 · 152 阅读 · 0 评论 -
python udp聊天器线程多任务
线程案例:多任务版udp聊天器说明编写一个有2个线程的程序线程1用来接收数据然后显示线程2用来检测键盘数据然后通过udp发送数据要求实现上述要求总结多任务程序的特点参考代码:import socketimport threadingdef send_msg(udp_socket): """获取键盘数据,并将其发送给对方""" while True: ...原创 2019-04-12 20:23:41 · 210 阅读 · 0 评论 -
python同步,互斥锁,死锁
同步的概念同步就是协同步调,按预定的先后次序进行运行。如:你说完,我再说。"同"字从字面上容易理解为一起动作其实不是,"同"字应是指协同、协助、互相配合。如进程、线程同步,可理解为进程或线程A和B一块配合,A执行到一定程度时要依靠B的某个结果,于是停下来,示意B运行;B执行,再将结果给A;A再继续操作。解决线程同时修改全局变量的方式对于上一小节提出的那个计算错误的问题,可以通过线程同步...原创 2019-04-12 20:20:44 · 2027 阅读 · 0 评论 -
多线程-共享全局变量问题
多线程-共享全局变量问题多线程开发可能遇到的问题假设两个线程t1和t2都要对全局变量g_num(默认是0)进行加1运算,t1和t2都各对g_num加10次,g_num的最终的结果应该为20。但是由于是多线程同时操作,有可能出现下面情况:在g_num=0时,t1取得g_num=0。此时系统把t1调度为”sleeping”状态,把t2转换为”running”状态,t2也获得g_num=0然后...原创 2019-04-12 20:15:44 · 692 阅读 · 0 评论 -
python多线程-共享全局变量
多线程-共享全局变量from threading import Threadimport timeg_num = 100def work1(): global g_num for i in range(3): g_num += 1 print("----in work1, g_num is %d---"%g_num)def work2()...原创 2019-04-12 20:13:44 · 357 阅读 · 0 评论 -
python线程的概念
线程python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用使用threading模块单线程执行#coding=utf-8import timedef saySorry(): print("亲爱的,我错了,我能吃饭了吗?") time.sleep(1)if __name__ == ...原创 2019-04-12 20:11:18 · 314 阅读 · 0 评论 -
python中创建线程,锁
并行和并发的区别?并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已)并行:指的是任务数小于等于cpu核数,即任务真的是一起执行的真的多任务叫并行,假的多任务叫并发。什么是线程?可以简单理解为同一进程中有多个计数器,每个线程的执行时间不确定,而每个进程的时间片相等,线程是操...原创 2019-04-09 17:27:30 · 399 阅读 · 0 评论 -
python协程实现多任务下载视频、音乐、图片
进程、线程、协程对比请仔细理解如下的通俗描述有一个老板想要开个工厂进行生产某件商品(例如剪子)他需要花一些财力物力制作一条生产线,这个生产线上有很多的器件以及材料这些所有的 为了能够生产剪子而准备的资源称之为:进程只有生产线是不能够进行生产的,所以老板的找个工人来进行生产,这个工人能够利用这些材料最终一步步的将剪子做出来,这个来做事情的工人称之为:线程这个老板为了提高生产率,想到3种办法...原创 2019-04-15 19:14:52 · 883 阅读 · 0 评论 -
Python中的random
Python中的random模块用于生成随机数。下面介绍一下random模块中最常用的几个函数。random.randomrandom.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0random.uniform random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是...原创 2019-04-07 21:03:23 · 316 阅读 · 0 评论 -
python中socket使用,IO多路复用,socketserver
1、socket2、IO多路复用3、socketserverSocketsocket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)基本上,Socket 是任何一种计算机网络通讯中最基础的内容...原创 2019-04-07 09:47:33 · 1196 阅读 · 0 评论 -
python使用单例模式创建MySQL链接
from functools import wrapsimport mysql.connectorfrom sshtunnel import SSHTunnelForwarderdef singleton(cls): instances = {} @wraps(cls) def get_instance(*args, **kw): if cls ...原创 2019-04-07 08:57:36 · 770 阅读 · 0 评论 -
python实现希尔排序
def shell_sort(alist): n = len(alist) gap = n // 2 while gap >= 1: for j in range(gap, n): i = j while (i - gap) >= 0: if alist[i] <...原创 2019-04-01 10:39:42 · 750 阅读 · 0 评论 -
python实现插入排序
def insert_sort(alist): for j in range(1,len(alist)): for i in range(j,0,-1): if alist[i] < alist[i - 1]: alist[i], alist[i - 1] = alist[i - 1], alist[i] ...原创 2019-04-01 10:37:59 · 645 阅读 · 0 评论 -
python实现选择排序
def select_sort(alist): n = len(alist) for j in range(n - 1): min_index = j for i in range(j + 1, n): if alist[i] < alist[min_index]: min_index =...原创 2019-04-01 10:36:22 · 188 阅读 · 0 评论 -
python实现冒泡排序
def bubble_sort(alist): n = len(alist) for j in range(n - 1): for i in range(0, n - 1 - j): if alist[i] > alist[i + 1]: alist[i], alist[i + 1] = alist[i ...原创 2019-04-01 10:32:52 · 507 阅读 · 0 评论 -
递归二分法查找和非递归二分法查找的区别
递归二分法查找`def binary_search(alist, item): n = len(alist) if 0 == n: return False mid = n // 2 if alist[mid] == item: return True elif item < alist[mid]: r...原创 2019-04-01 10:28:47 · 464 阅读 · 0 评论 -
MarkdownPad2安装汉化与注册码
众所周知,Markdown是网络写作的利器,诸多功能不在此介绍,今天给大家来分享一下Markdown的下载安装、汉化以及注册码。一、MarkdownPad2的下载安装下面是Markdown的下载链接可以直接点击进入下载页面进行下载:http://markdownpad.com/download.html这里安装不在不在阐述,基本都可以安装成功!二、MarkdownPad2的注册安装成功...原创 2019-03-30 22:09:49 · 431 阅读 · 0 评论 -
解决方法 Uncaught SyntaxError: Unexpected token , in JSON at position 30
这个错误是在说,我们返回的json数据格式有问题,出现了一个意外的字符,让我们来看一下具体代码:@api.route("/areas", methods=[“GET”])def get_area_info():‘’‘获取城区信息’’’# 先尝试从redis 中获取缓存数据try:areas_json = redis_store.get(“area_info”)except Exc...原创 2019-03-30 22:06:22 · 11578 阅读 · 0 评论 -
HTTP method 请求方式
1 GET 请求指定的页面信息,并返回实体主体。2 HEAD 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头3 POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。4 PUT 从客户端向服务器传送的数据取代指定的文档的内容。5 DELETE 请求服务器删除指定的页面。6 C...原创 2019-03-30 22:02:44 · 2663 阅读 · 0 评论 -
vmware虚拟机运行卡慢的解决办法
虚拟机的运行速度有一部分原因决定于你的物理机的配置,如果你的物理机配置不高,建议不要运行虚拟机,那样反而会更卡!切记!!!在操作之前,先给虚拟机拍摄一个快照,然后所有操作都在虚拟机关机的情况下执行!图中没让执行的操作或者勾选选项,不要私自操作。以下几张图,可以让你的虚拟机运行的非常畅快,请按照图片上的指示,认真操作:以上配置,不会清理掉你现有的虚拟机设置,当然,为了安全起见,你可以...原创 2019-03-30 21:52:02 · 10183 阅读 · 0 评论 -
爬虫开源项目
WechatSogou – 微信公众号爬虫基于搜狗微信搜索的微信公众号爬虫接口,可以扩展成基于搜狗搜索的爬虫,返回结果是列表,每一项均是公众号具体信息字典。github地址:https://github.com/Chyroc/WechatSogouDouBanSpider – 豆瓣读书爬虫可以爬下豆瓣读书标签下的所有图书,按评分排名依次存储,存储到Excel中,可方便大家筛选搜罗,比如筛...原创 2019-03-30 21:47:33 · 257 阅读 · 0 评论 -
shell编程2
grep [ 参数] [关键字] <文件名>-c 输出匹配行的计数-n 显示匹配及行号-v 显示不包括匹配文本的所有行-i 不区分大小写精确定位错误代码grep -nr [错误关键字] *sed [参数] ‘ <匹配条件> [ 动作] ‘ [ 文件名]-i对文件进行编辑-a在匹配到的内容下一行增加内容-d 删除匹配到的内容-s 替换匹配到的内容...原创 2019-03-25 17:41:57 · 136 阅读 · 0 评论 -
Python内置类型性能分析
使用到的知识点timeit模块timeit模块可以用来测试一小段Python代码的执行速度。class timeit.Timer(stmt=‘pass’, setup=‘pass’, timer=)Timer是测量小段代码执行速度的类。stmt参数是要测试的代码语句(statment);setup参数是运行代码时需要的设置;timer参数是一个定时器函数,与平台有关。timeit....原创 2019-03-25 17:34:28 · 129 阅读 · 0 评论