Python
谛听-
线上幽灵
展开
-
python 进程交互:Queue
#!/usr/bin/env python# -*- coding: utf-8 -*-import timeimport datetimeimport multiprocessingfrom multiprocessing import Process, Manager, Lock, Queuefrom threading import Threadimport ctypes, ...原创 2019-12-24 09:55:55 · 241 阅读 · 0 评论 -
python 进程与线程的交互
#!/usr/bin/env python# -*- coding: utf-8 -*-import timeimport datetimefrom multiprocessing import Process, Manager, Lockfrom Queue import Queuefrom threading import Threadimport ctypes, osimp...原创 2019-12-22 04:57:30 · 307 阅读 · 0 评论 -
python --- 线程不适合计算密集型的例子
多个线程干同一件事 VS 一个线程干一件事居然后者更快一些,原来 python 中的线程不适合计算密集型。原因:https://www.dabeaz.com/usenix2009/concurrent/Concurrent.pdf#!/usr/bin/env python# -*- coding: utf-8 -*-from threading import Threadimport...原创 2019-12-19 17:49:16 · 409 阅读 · 0 评论 -
python 中 queue 高效的原因
queue 高效的原因:底层使用了 dequeuedequeue:[1] C 编写[2] dequeu 的 append 和 popleft 方法的时间复杂度均为 O(1)[3] 完全避免了 realloc(),当空间不够时,再分配一个 block 即可[4] 一个 block 的默认大小为 64,避免了频繁调用 malloc() 和 free()[5] block 内元素的指针连续,...原创 2019-12-12 11:42:40 · 361 阅读 · 0 评论 -
python---进程、线程、协程
总结cpu 密集型耗时 /s普通8.58多进程1.80多线程8.70协程8.40io 密集型耗时 /s普通10.028多进程1.037多线程1.007协程1.005如果是 CPU bound,则需要使用多进程来提高程序运行效率。如果是 I/O bound,但是 I/O 操作很快,只需要有...原创 2019-09-15 18:54:16 · 140 阅读 · 0 评论 -
python---协程
协程协程是单线程,由用户决定何时切换必须头脑清晰地决策切换时机协程库async 定义函数await 从当前任务切出asyncio.create_task 创建任务asyncio.run 事件循环开启asyncio.gather 收集结果,等待并按给定的顺序返回其结果生产者、消费者import asyncioimport timeasync def consumer...原创 2019-09-03 21:38:17 · 167 阅读 · 0 评论 -
eventfd & epoll & 消费者线程池
在Linux系统中,eventfd 是一个用来通知事件的文件描述符,timerfd 是定时器事件的文件描述符。二者都是内核向用户空间的应用发送通知的机制,可以有效地被用来实现用户空间的事件/通知驱动的应用程序。简而言之,就是 eventfd 用来触发事件通知,timerfd 用来触发将来的事件通知。当仅用于实现信号通知的功能时,eventfd() 完全可以替代 pipe(),对于内核来说,ev...原创 2019-08-11 18:51:02 · 1432 阅读 · 0 评论 -
python---装饰器
简单的例子def my_decorator(func): def wrapper(): print('wrapper of decorator') func() return wrapperdef greet(): print('hello world')greet = my_decorator(greet)greet()运行...原创 2019-08-07 15:05:38 · 144 阅读 · 0 评论 -
linux 下 python 守护进程编写和原理理解
转自:http://www.01happy.com/linux-python-daemon/守护进程英文为daemon,像httpd、mysqld、vsftpd最后个字母d其实就是表示daemon的意思。守护进程的编写步骤:fork子进程,而后父进程退出,此时子进程会被init进程接管。修改子进程的工作目录、创建新进程组和新会话、修改umask。子进程再次fork一个进程,这个进程可以...转载 2019-08-04 19:03:49 · 149 阅读 · 0 评论 -
pip install 很慢的解决方法
$ mkdir ~/.pip$ vim ~/.pip/pip.conf添加:[global]index-url = https://mirrors.cloud.tencent.com/pypi/simple原创 2019-08-01 13:49:15 · 2261 阅读 · 1 评论 -
python---添加 PYTHONPATH
添加 PYTHONPATH$ vim ~/.bashrc$ export PYTHONPATH=<你要加入的路径1>:<你要加入的路径2>: ...... :$PYTHONPATH$ source ~/.bashrc查看 PYTHONPATH:$ python>>> import sys>>> print sys.path...原创 2019-07-30 14:59:15 · 8253 阅读 · 0 评论 -
python---爬虫[2]:数据格式化、存储
所有的信息位于一个括号内,所有的评论位于 comments 中,comments 中的每个元素的 date、content 等字段为所需的。skirt.py: # 解析具体的评论 def parse_rate_list(self, response): # 将响应信息转换成 json 格式 goods_rate_data = ...原创 2019-02-12 13:03:14 · 1083 阅读 · 0 评论 -
python---爬虫[3]:爬虫与反爬虫
评论数据抓取和格式化原创 2019-02-12 13:26:21 · 1127 阅读 · 1 评论 -
python---爬虫[1]:页面分析
页面分析及数据抓取anaconda + scrapy 安装:https://blog.csdn.net/dream_dt/article/details/80187916用 scrapy 初始化一个爬虫:https://blog.csdn.net/dream_dt/article/details/80188592要爬的网页:复制网址后,在 Anaconda Prompt 中,cd 到项...原创 2019-02-10 20:48:54 · 657 阅读 · 0 评论 -
python---Numpy, Pandas 基础知识
Numpy 数组# -*- coding: utf-8 -*-import numpy as nparr = np.array([1, 2, 3])print(arr)list1 = [1, 2, 3]print(list1)print(arr.shape)arr = np.array([[1, 2, 3], [4, 5, 6]])print(arr)print(a...原创 2019-02-10 19:50:56 · 381 阅读 · 0 评论 -
python---正则表达式
正则表达式import rereg_string = "hello9527python@wangcai.@!:xiaoqiang"reg = "hello"result = re.findall(reg, reg_string)print(result)元字符import re'''. 匹配换行符之外的任意字符\w 匹配字母或数组或汉字\s 匹配任意的空白符\d ...原创 2019-02-10 15:41:15 · 327 阅读 · 0 评论 -
python---函数式编程
lambda 表达式# -*- coding: utf-8 -*-def func_add(x, y): return x + yprint(func_add(3, 4))# lambda 表达式# “:” 前为参数,“:”后为函数体func = lambda x, y : x + yprint(func(3, 4))结果:三元表达式# 三元表达式,也叫三目...原创 2019-02-09 21:33:28 · 175 阅读 · 0 评论 -
python---面向对象
init.py创建一个包的时候,自动生成 init.py。只有包含了 init.py 模块的文件夹才能成为包。init.py 模块在包被导入时运行。类类的实例化、实例方法、类方法、静态方法student.py# -*- coding: utf-8 -*-class Student(): name = 'Tony' age = '33' ...原创 2019-02-09 20:09:11 · 157 阅读 · 0 评论 -
python---将多条曲线画在一幅图
# -*- coding: utf-8 -*-&amp;quot;&amp;quot;&amp;quot;Created on Thu Jun 07 09:17:40 2018@author: yjp&amp;quot;&amp;quot;&amp;quot;import matplotlib.pyplot as pltimport numpy as npfrom matplotlib.ticke原创 2018-06-07 15:20:24 · 48569 阅读 · 1 评论 -
python---以不变形的方式调整图片大小
转自 http://www.cnblogs.com/neo-T/p/6477378.htmlimport os, sysimport cv2#按照指定图像大小调整尺寸def resize_image(image, height, width): top, bottom, left, right = (0, 0, 0, 0) #获取图像尺寸 h, w, _ = ima转载 2017-07-23 17:17:47 · 14607 阅读 · 3 评论 -
python---将一个文件夹下的图片移到另一个文件夹
import os, sysfrom PIL import Image"""将filePath文件下的图片保存在newFilePath文件夹下的相应子文件夹中pic 是字典,存放每个图片要移到的子文件夹名"""def moveImg(filePath, newFilePath, pic): filePath = unicode(filePath, "utf8") newFi原创 2017-07-23 15:55:29 · 13928 阅读 · 0 评论 -
python---批量创建文件夹
在目录“E:/bd/train/train1/”下创建100个文件夹import os, sysdef genDir(): base = 'E:/bd/train/train1/' i = 1 for j in range(100): file_name = base + str(i) os.mkdir(file_name)原创 2017-07-23 15:04:48 · 8372 阅读 · 0 评论 -
keras---minist手写识别
转自: https://github.com/xingkongliang/Keras-Tutorials/blob/master/01.mnist_mpl.ipynbfrom __future__ import print_functionimport numpy as npnp.random.seed(1337) # for reproducibilityfrom keras.datas转载 2017-07-21 21:09:49 · 1562 阅读 · 0 评论 -
win7---keras安装
1、卸载之前版本的python。 因为Anaconda里边包含了python。2、安装Anaconda。 本文安装目录:D:\ProgramData\Anaconda2,下载链接:https://www.continuum.io/downloads3、安装MinGw。 1>打开CMD,进入目录:D:\ProgramData\Anaconda2\Scripts 2>输入conda instal原创 2017-07-17 16:35:26 · 3518 阅读 · 0 评论 -
python中的队列、栈
队列定义:>>> q = []入队列:>>> q.append(1)>>> q.append(2)>>> q.append(3)出队列:>>> q.pop(0)1>>> q.pop(0)2队列顶端>>> q[0]3是否为空:>>> not qFalse栈定义:>>> s = []入栈:>>原创 2016-11-08 18:53:28 · 382 阅读 · 0 评论 -
python---通过networkx使图着色结果可视化
假定邻接矩阵为: 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 0 1 1 0 0 1 1 1 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 1 1 0 0 1 0 1 0 0 1 1 0 1 1 1 0 0 1 0 0 0 0 1 1 1 0根据图着色算法以求得着色方案: 1 2 3 3 1 2 2 3接下来可视化图着色结果import network原创 2016-03-03 00:09:34 · 14694 阅读 · 7 评论 -
python---matplotlib安装、networkx的使用
python版本:2.7.5 matplotlib版本: matplotlib-1.4.2-cp27-none-win32.whl matplotlib下载地址:http://matplotlib.org/downloads.htmlnetworkx的安装直接easy_install即可。 安装matplotlib 系统中已安装好numy,接下来通过easy_install安装six, da原创 2016-03-02 19:03:00 · 3369 阅读 · 0 评论 -
通过easy_insall安装模块
先切换到easy_install所在目录: 然后安装所需模块: 如果通过easy_install安装失败,只能手动下载安装包,会自行安装,如果仍然失败,应该添加路径: 如果想查看路径,去除路径:原创 2015-12-14 16:04:14 · 472 阅读 · 0 评论 -
网络程序
udpRecv.pyimport sockets = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #ipv4, udp协议s.bind(("", 5005)) #第一个参数为ip地址,空串表示使用本机的任何可用IP,第二个为端口号data, addr = s.recvfrom(1024) #返回第一个值为接收到的数据,第二个值为发送方IP原创 2015-12-14 23:55:38 · 478 阅读 · 0 评论 -
添加窗体控件
import wxclass Frame1(wx.Frame): def __init__(self, superior): wx.Frame.__init__(self, parent=superior, title='intput and output', size=(400, 200)) panel = wx.Panel(self) #pan原创 2015-12-14 22:10:06 · 420 阅读 · 0 评论 -
框架的创建和使用
import wxclass Frame0(wx.Frame): #程序的框架类继承与wx.Frame类 def __init__(self, superior): #创建frame对象 wx.Frame.__init__(self, parent=superior, title='my frame', pos=(0,0), size=(300, 300))原创 2015-12-14 21:29:05 · 554 阅读 · 0 评论 -
Requirement already satisfied: flask in /usr/local/lib64/python3.6/site-packages
问题描述执行pm2 start -s --name=hello hello.py服务器没有启动成功pm2 日志:vim ~/.pm2/logs/hello-error.logTraceback (most recent call last): File "/data/pai_mate_workspaces/pai-mate-hello-example-py/hello.py",...原创 2019-09-23 22:53:58 · 3309 阅读 · 0 评论