
Python
文章平均质量分 55
谁动了我的bug
不为失败找理由,只为成功找方法。
展开
-
如何使用python语言将txt中的数据转化成json格式的数据?
port_result.txt里面的文本内容如下:怎么罚变道?如何处罚变道?怎样处理变道?要怎么惩处变道?应该怎么惩办变道?法律怎么责罚变道?到底怎么惩罚变道?说一下怎么处置变道?说说怎么处分变道?告诉我怎么处治变道?如何将port_result.txt里面的文本内容格式转化为如下格式?[ { "name": "怎么罚变道?" }...原创 2019-07-23 13:06:06 · 19736 阅读 · 0 评论 -
进程间通信-Queue
Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。1. Queue的使用可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:#coding=utf-8from multiprocessing import Queueq=Queue(3) #初始化...原创 2018-11-23 16:37:27 · 187 阅读 · 0 评论 -
进程池Pool
当需要创建的子进程数量不多时,可以直接利用multiprocessing中的Process动态生成多个进程,但如果是上百甚至上千个目标,手动的去创建进程的工作量巨大,此时就可以用到multiprocessing模块提供的Pool方法。初始化Pool时,可以指定一个最大进程数,当有新的请求提交到Pool中时,如果池还没有满,那么就会创建一个新的进程用来执行该请求;但如果池中的进程数已经达到指定的...原创 2018-11-22 16:45:49 · 235 阅读 · 0 评论 -
进程的创建-Process子类
创建新的进程还能够使用类的方式,可以自定义一个类,继承Process类,每次实例化这个类的时候,就等同于实例化一个进程对象,请看下面的实例:from multiprocessing import Processimport timeimport os#继承Process类class Process_Class(Process): #因为Process类本身也有__init_...原创 2018-11-22 16:33:34 · 373 阅读 · 0 评论 -
进程的创建-multiprocessing
如果你打算编写多进程的服务程序,Unix/Linux无疑是正确的选择。由于Windows没有fork调用,难道在Windows上无法用Python编写多进程的程序?由于Python是跨平台的,自然也应该提供一个跨平台的多进程支持。multiprocessing模块就是跨平台版本的多进程模块。multiprocessing模块提供了一个Process类来代表一个进程对象,下面的例子演示了启动...原创 2018-11-22 16:25:30 · 169 阅读 · 0 评论 -
多次fork问题
如果在一个程序,有2次的fork函数调用,是否就会有3个进程呢?#coding=utf-8import osimport time# 注意,fork函数,只在Unix/Linux/Mac上运行,windows不可以pid = os.fork()if pid == 0: print('哈哈1')else: print('哈哈2')pid = os.fork()...原创 2018-11-22 15:57:00 · 763 阅读 · 0 评论 -
多进程修改全局变量
#coding=utf-8import osimport timenum = 0# 注意,fork函数,只在Unix/Linux/Mac上运行,windows不可以pid = os.fork()if pid == 0: num+=1 print('哈哈1---num=%d'%num)else: time.sleep(1) num+=1 ...原创 2018-11-22 15:56:16 · 1130 阅读 · 0 评论 -
进程的创建-fork
1. 进程 VS 程序编写完毕的代码,在没有运行的时候,称之为程序正在运行着的代码,就成为进程进程,除了包含代码以外,还有需要运行的环境等,所以和程序是有区别的2. fork( )Python的os模块封装了常见的系统调用,其中就包括fork,可以在Python程序中轻松创建子进程:#coding=utf-8import os# 注意,fork函数,只在Unix/L...原创 2018-11-22 15:46:33 · 237 阅读 · 0 评论 -
多任务的引入及多任务的概念
现实生活中有很多的场景中的事情是同时进行的,比如开车的时候手和脚共同来驾驶汽车,再比如唱歌跳舞也是同时进行的;试想,如果把唱歌和跳舞这2件事情分开依次完成的话,估计就没有那么好的效果了(想一下场景:先唱歌,然后在跳舞,O(∩_∩)O哈哈~)程序中如下程序,来模拟“唱歌跳舞”这件事情#coding=utf-8from time import sleepdef sing()...原创 2018-11-22 11:59:21 · 360 阅读 · 0 评论 -
python中的编码风格
错误认知1)这很浪费时间2)我是个艺术家3)所有人都能穿的鞋不会合任何人的脚4)我善长制定编码规范正确认知1)促进团队合作2)减少bug处理3)提高可读性,降低维护成本4)有助于代码审查5)养成习惯,有助于程序员自身的成长pep8 编码规范Python Enhancement Proposals :python改进方案https://www.python.org/...原创 2018-11-19 14:53:32 · 217 阅读 · 0 评论 -
python中的调试
pdbpdb是基于命令行的调试工具,非常类似gnu的gdb(调试c/c++)。执行时调试程序启动,停止在第一行等待单步调试。python -m pdb some.py交互调试进入python或ipython解释器import pdbpdb.run('testfun(args)') #此时会打开pdb调试,注意:先使用s跳转到这个testfun函数程...原创 2018-11-19 14:14:43 · 395 阅读 · 0 评论 -
python模块进阶
Python有一套很有用的标准库(standard library)。标准库会随着Python解释器,一起安装在你的电脑中的。 它是Python的一个组成部分。这些标准库是Python为你准备好的利器,可以让编程事半功倍。常用标准库hashlibimport hashlibm = hashlib.md5() #创建hash对象,md5:(message-Digest A...原创 2018-11-19 11:48:27 · 353 阅读 · 0 评论 -
python中的内建函数
Build-in Function,启动python解释器,输入 dir(__builtins__) , 可以看到很多python解释器启动后默认加载的属性和函数,这些函数称之为内建函数, 这些函数因为在编程时使用较多,cpython解释器用c语言实现了这些函数,启动解释器 时默认加载。这些函数数量众多,不宜记忆,开发时不是都用到的,待用到时再help(function), 查看如何使用,或结...原创 2018-11-19 11:34:51 · 331 阅读 · 0 评论 -
python中的内建属性
"teachclass.py"class Person(object):passpython3.5中类的内建属性和方法经典类(旧式类),早期如果没有要继承的父类,继承里空着不写的类#py2中⽆继承⽗类,称之经典类,py3中已默认继承objectclass Person: pass子类没有实现 __init__ 方法时,默认自动调用父类的。 如定义 __...原创 2018-11-19 10:59:43 · 265 阅读 · 0 评论 -
多线程-threading
python的thread模块是比较底层的模块,python的threading模块是对thread做了一些包装的,可以更加方便的被使用1. 使用threading模块单线程执行#coding=utf-8import timedef saySorry(): print("亲爱的,我错了,我能吃饭了吗?") time.sleep(1)if __name__ =...原创 2018-11-24 22:15:24 · 221 阅读 · 0 评论 -
threading注意点
1. 线程执行代码的封装通过上面一节,能够看出,通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会定义一个新的子类class,只要继承 threading.Thread 就可以了,然后重写 run 方法示例如下:#coding=utf-8import threadingimport timeclass ...原创 2018-11-24 22:24:54 · 191 阅读 · 0 评论 -
推荐几个 Python 方向的公众号
Python二三事与机器学习算法一个专注机器学习算法,主要分享通俗笔记、实战教程和学习资料等干货,涉及机器学习、CV、NLP、C/C++、Python等方向。大数据分析挖掘和Python机器学习商业智能BI、数据分析、数据挖掘、大数据、Python、机器学习、深度学习、算法等技术分享,内容丰富,涉猎较广。想要学习技术的小伙伴,一定不要错过哦!我爱计算机视觉一...原创 2019-03-29 17:54:54 · 1098 阅读 · 0 评论 -
UnicodeDecodeError: ‘ascii‘ codec can‘t decode byte 0xe5 in position 0: ordinal not in range(128)
今天我在练习mongo与python交互的时候写了以下代码:#coding=utf-8from pymongo import *#获得客户端,建立链接client=MongoClient('mongodb://py3:123@localhost:27017/py3')#切换数据库db=client.py3#获取集合stu=db.stu#增加#s1=stu.insert...原创 2018-12-27 21:26:42 · 17764 阅读 · 5 评论 -
python3.x中的生成器generator调用next方法
今天写了一段Python程序,用到了Python的generator。当我用到generator的next方法时,linux总是提醒我符号错误。当时我是这么用的:import timedef A(): while True: print("----A---") yield time.sleep(0.5)def B(c): ...原创 2018-12-06 16:59:20 · 997 阅读 · 1 评论 -
异步
1)同步调用就是你 喊 你朋友吃饭 ,你朋友在忙 ,你就一直在那等,等你朋友忙完了 ,你们一起去2)异步调用就是你 喊 你朋友吃饭 ,你朋友说知道了 ,待会忙完去找你 ,你就去做别的了。from multiprocessing import Poolimport timeimport osdef test(): print("---进程池中的进程---pid=%d,ppi...原创 2018-11-25 11:35:47 · 168 阅读 · 0 评论 -
ThreadLoc
在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。1. 使用函数传参的方法但是局部变量也有问题,就是在函数调用的时候,传递起来很麻烦:def process_student(name): std = Student(name) # std是局部变量,但是每个函...原创 2018-11-25 11:35:26 · 241 阅读 · 0 评论 -
生产者与消费者模式
1. 队列先进先出2. 栈先进后出Python的Queue模块中提供了同步的、线程安全的队列类,包括FIFO(先⼊先出)队列Queue,LIFO(后⼊先出)队列LifoQueue,和优先级队列PriorityQueue。这些队列都实现了锁原语(可以理解为原⼦操作,即要么不做,要么就做完),能够在多线程中直接使用。可以使用队列来实现线程间的同步。用FIFO队列实现上述生产...原创 2018-11-24 23:28:35 · 263 阅读 · 0 评论 -
同步应用
多个线程有序执行from threading import Thread,Lockfrom time import sleepclass Task1(Thread): def run(self): while True: if lock1.acquire(): print("------Task 1 ---...原创 2018-11-24 23:18:38 · 253 阅读 · 0 评论 -
死锁
现实社会中,男女双方都在等待对方先道歉如果双方都这样固执的等待对方先开扣,弄不好,就分手了1. 死锁在线程间共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源,就会造成死锁。尽管死锁很少发生,但一旦发生就会造成应用的停止响应。下,面看一个死锁的例子#coding=utf-8import threadingimport timeclass My...原创 2018-11-24 23:14:03 · 146 阅读 · 0 评论 -
多线程-非共享数据
对于全局变量,在多线程中要格外小心,否则容易造成数据错乱的情况发生1. 非全局变量是否要加锁呢?#coding=utf-8import threadingimport timeclass MyThread(threading.Thread): # 重写 构造方法 def __init__(self,num,sleepTime): threading...原创 2018-11-24 22:59:14 · 307 阅读 · 0 评论 -
互斥锁
当多个线程几乎同时修改某一个共享数据的时候,需要进行同步控制线程同步能够保证多个线程安全访问竞争资源,最简单的同步机制是引用互斥锁。互斥锁为资源引用一个状态:锁定/非锁定。某个线程要更改共享数据时,先将其锁定,此时资源的状态为“锁定”,其他线程不能更改;直到该线程释放资源,将资源的状态变成“非锁定”,其他的线程才能再次锁定该资源。互斥锁保证了每次只有一个线程进行写入操作,从而保证了多线程情况下数据...原创 2018-11-24 22:54:52 · 289 阅读 · 0 评论 -
同步
1. 多线程开发可能遇到的问题假设两个线程t1和t2都要对num=0进行增1运算,t1和t2都各对num修改10次,num的最终的结果应该为20。但是由于是多线程访问,有可能出现下面情况:在num=0时,t1取得num=0。此时系统把t1调度为”sleeping”状态,把t2转换为”running”状态,t2也获得num=0。然后t2对得到的值进行加1并赋给num,使得num=1。然后...原创 2018-11-24 22:44:55 · 115 阅读 · 0 评论 -
进程VS线程
功能1)进程,能够完成多任务,比如 在一台电脑上能够同时运行多个QQ2)线程,能够完成多任务,比如 一个QQ中的多个聊天窗口定义的不同1)进程是系统进行资源分配和调度的一个独立单位.2)线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,⼀组寄存器和栈),但是...原创 2018-11-24 22:37:09 · 110 阅读 · 0 评论 -
多线程-共享全局变量
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(): globa...原创 2018-11-24 22:30:35 · 348 阅读 · 0 评论 -
垃圾回收(三)-gc模块
一.垃圾回收机制Python中的垃圾回收是以引用计数为主,分代收集为辅。1、导致引用计数+1的情况1)对象被创建,例如a=232)对象被引用,例如b=a3)对象被作为参数,传入到一个函数中,例如func(a)4)对象作为一个元素,存储在容器中,例如list1=[a,a]2、导致引用计数-1的情况1)对象的别名被显式销毁,例如del a2)对象的别名被赋予新的对象,例如a...原创 2018-11-19 10:44:55 · 472 阅读 · 0 评论 -
python中的元类
1. 类也是对象在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):… pass…>>> my_object = ObjectCreator()>>> print my_object<__main__.Objec...原创 2018-11-16 22:10:40 · 202 阅读 · 0 评论 -
python中的设计模式
简单工厂模式:class AppleCake(object): def __init__(self, weidao="苹果味道"): self.taste = weidaoclass OrangeCake(object): def __init__(self, weidao="橘子味道"): self.taste = weidaoc...原创 2018-11-05 16:52:08 · 182 阅读 · 0 评论 -
python面试题
替换字符串:aStr = "hello world ,hhhh world heihei"def replaceStr(temp, oldStr, newStr): while True: print(temp) position = temp.find(oldStr) if position == -1: ...原创 2018-11-07 08:48:47 · 303 阅读 · 0 评论 -
python中的类和对象1
def 函数名(): xxxx定义一个类的方式为:class 类名: xxxxx类名:规则 大驼峰给一个对象添加属性方法为:对象名.新的属性名 = 值获取这个对象的属性,2种方法:1. 对象.属性2. 定义一个方法,这个方法中,使用 self.属性__init__()方法 1. 是python自动调用的方法,调用的时间为:创建完对象之后,立马自动调...原创 2018-11-02 16:29:49 · 238 阅读 · 0 评论 -
python操作文件
#文件复制#0. 提示并获取要复制的文件名name = input("请输入要复制的文件名:")#1.打开要复制的文件f_read = open(name,"r")#2. 创建一个新的文件,用来存储源文件的数据内容findPosition = name.rfind(".")newName = name[:findPosition] + "[复制]"+ name[findPos...原创 2018-11-02 16:22:51 · 346 阅读 · 0 评论 -
AttributeError: module ‘random‘ has no attribute ‘randint‘
运行上面的命令出现如下错误:开始找了很久也没找出来什么原因,后来我给random.py换了个名字就ok啦!经过查资料得知,因为我的脚本名字为random.py,和系统的有冲突,修改脚本名字即可。真是坑啊,这就告诉我们以后起名字得慎重,慎重,再慎重,千万不要在这些低级错误上面耗费大量的时间。...原创 2018-11-06 17:38:02 · 22089 阅读 · 21 评论 -
python中的类和对象2
老王开枪完成版:class Ren: def __init__(self,name): self.name = name self.xue = 100 self.qiang = None def __str__(self): return self.name + "剩余血量为:" + str(self.xue)...原创 2018-11-03 18:30:34 · 210 阅读 · 0 评论 -
python中的匿名函数
in [1]: a = [12,343,1,2131,23,12,41,3,1,231,23,12,3,123] In [2]: a.sort() In [3]: a Out[3]: [1, 1, 3, 3, 12, 12, 12, 23, 23, 41, 123, 231, 343, 2131] In [4]: a.sort(reve) r...原创 2018-11-01 09:23:35 · 174 阅读 · 0 评论 -
python基础-if、while、for等
if 判断条件的时候,如果是多个条件一起进行判断,那么就需要 逻辑运算符 并且----->and 或者----->or 非(取反)--->notif 条件1 and 条件2: 条件1和条件2都满足时,做的事情1 条件1和条件2都满足时,做的事情2 。。。等等。。。总结:方式1:if 条件: 条件满足时做的事情1...原创 2018-10-30 14:06:05 · 267 阅读 · 0 评论 -
python函数
函数一块具有独立功能的代码块,重复使用,那么往往就需要使用函数,使用函数把这块代码封装成一个整体1.定义函数def 函数名(): 函数代码(函数要执行的代码)def printHelp(): print("="*30) print(" 学生管理系统V1.0") print("1. 添加学生信息") print("2. 删除学生信息")...原创 2018-10-31 22:20:06 · 356 阅读 · 0 评论