python3多进程实例详解

刚写完多线程的笔记没几天,可以看看我之前的多线程IO密集型操作实例详解:https://sulao.cn/post/609.html多进程和多线程的区别在于,多线程是一组资源由所有子线程共享,当其中一个子线程修改共享资源的变量,那么所有子线程获取到的共享资源变量就会改变,当其中一个线程崩溃会导致整个进程崩溃,多进程拷贝资源变量到每个子进程进行各自处理各自的任务,不受其他进程的影响,多进程的劣势是创建进程资源开销大,运行的进程数量也是有限的,进程过多会导致任务调度都会出现问题今天来把多进程也来做几个实例介绍下,本地目前没有这种场景,也是尽量写最简单最容易理...

阅读全文

python3筛选出日志中最多访问的前10个IP

bash脚本也能实现,现在用python3重写了下这个脚本,以后肯定用的上,直接看我的实践例子,用的是我博客的访问记录进行筛选的,直接上代码了:#!/usr/bin/python3#coding:utf-8l = []logs = {}with open('sulao.cn-access.log', 'r', encoding='utf-8') as f:   &nbs...

阅读全文

python3多线程IO密集型操作实例详解

以前没写过多线程和多进程的笔记,自己抽空写了个实例,网上大多数的例子都是一样的,翻了百度几页都是几个计数器加时间打印出来,一般初学者也是很难看懂的Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核,实际使用的是单核CPU,使用抢占模式来执行任务,实际没有并行处理任务,所以实际场景当中和单线程没有太大的速度上的效果,同时多线程使用的资源都有所有线程来共享,所以我们再使用资源的时候需要加锁,以免当前线程修改资源的时候其他线程也来修改导致把数据改乱,我下面例子场景由于是中使用了queue队列,所以无需加锁来操作主要代码如下:#!/usr/bi...

阅读全文

python3使用base64将图片转码解码

工作中经常遇到,注意不是将图片名字和路径转码,而是将图片对象转码进行网络间传递,之前用了php写了一个,可以参考之前的笔记:https://sulao.cn/post/544.html现在主要的代码如下:将图片转码成base64#!/usr/bin/python3#coding:utf-8import base64def conv_bs64(image_path):    with open(image_path, 'rb') a...

阅读全文

python3使用xlwt模块操作excel

和读操作分开写了两份笔记,后面还需要更新一个更新excel的笔记,写入数据也基本就四步操作第一步:创建excel文件第二步:创建工作簿对象第三步:写入表头数据第四步:循环写入数据具体代码如下#!/usr/bin/python3#coding:utf-8import xlwt#创建excelbook = xlwt.Workbook(encoding='utf-8')#创建工作簿sheet = book.add_sheet(u'工作资料')#创建...

阅读全文

python3使用xlrd模块读取excel文件

自己操作使用了下,顺便记录,加深了解xlrd模块的使用方法,网上写的一大堆,我这里每一句的意思都进行了注释,方便理解,其实主要就三个步第一步:打开excel对象第二步:获取工作簿对象第三步:使用循环、cell、get_rows获取操作工作簿数据#!/usr/bin/python3#coding:utf-8import xlrdbook = xlrd.open_workbook(r'face.xls')#返回所有工作簿名称列表(list)print(books.sheet_names()...

阅读全文

python3使用IPy检测IP地址的合法性

网上看到这个教程,感觉以后做数据分析用的上,于是本地测试分析了下,根据自己的总结来记录最后正确的答案,一般网上有三种方式,第一种是正则表达式,第二种是拆解IP地址为列表来逐个判断,第三种使用外部IPy模块,个人建议使用第三种,两个字,省事,由于我验证过了,所以我得出的结论不光是省事,我截图大家看下就知道了。如果IP格式是这种xxx.xxx.xxx不足十分位百分位的用0补全的地址的话,使用正则这种方式会匹配不到,正则我不是太精通,我个人还是推荐IPy模块来匹配,两种代码都发出来,以后亦可以进行参考正则匹配方式#!/usr/bin/python3#cod...

阅读全文

Python全局变量global关键字使用详解

python全局变量和php的全局变量区别还是蛮大的,我们定义的变量他的作用域覆盖本模块或者文件,我们再函数中重新定义一个同名局部变量的话,在函数内加以修改,函数中会优先使用这个函数内定义的局部变量,如果我们需要在函数内修改全局变量,那么我们需要global关键字改变局部变量的作用域,直接上例子吧#!/usr/bin/python3#coding:utf-8names = 'shevechco'def test():    names =&nb...

阅读全文

Python类、模块、包的概念及区别

Python类、模块、包的概念及区别,这些理论之前也只是一扫而过,平时只是过多的去实践写代码,比较少了看理论知识,现在重新记录下,加深印象python类类的概念在许多语言中出现,是面向对象编程的基础,很容易理解。抽象出不同物体的共同特征,根据相似性原则,把彼此相似的物体归于相同的类概念,它将数据和操作进行封装,以便将来的复用。python模块模块,在Python中一个文件就可以认为是一个模块。在创建了一个脚本文件后,定义了某些函数和变量。你在其他需要这些功能的文件中,导入这模块,就可重用这些函数和变量。模块名就是文件名去掉.py后缀。模块也可以简单的划...

阅读全文

python3写入和读取csv文件的方法详解

python3导出csv非常简单,现在先给发夹看看导出csv文件的实例,后面有空再写导出到excel文件我们来先看看代码#!/usr/bin/python3#coding:utf-8import pymysqlimport timeimport csvdef connectMysql():    conn = False    try:    ...

阅读全文