python
qq_16069927
这个作者很懒,什么都没留下…
展开
-
使用 nsis 实现 exe 的安装包
在这之前需要安装 nsis 和 nsis edit,其下载链接见原创 2022-07-03 23:27:20 · 385 阅读 · 0 评论 -
python 运行 daemon 程序
使用 deamon lib 运行 python daemon 程序import daemonimport daemon.pidfiledef run_daemon_app(): with daemon.DaemonContext(pidfile=daemon.pidfile.PIDLockFile('/var/run/app.pid'),detach_process=True) app()使用上面的代码即可 daemon 运行一个 python app,并且在 /var/run/app.pi原创 2022-03-27 18:33:46 · 1571 阅读 · 1 评论 -
在其他文件中运行 python 测试用例
# preferred module name would be test_protol as CamelCase convention are used for class nameimport TestProtocol# try to load all testcases from given module, hope your testcases are extending from unittest.TestCasesuite = unittest.TestLoader().loadTes.原创 2021-04-18 23:22:12 · 236 阅读 · 0 评论 -
python 中如何使用 multiprocessing.Queue
见https://stackoverflow.com/questions/11515944/how-to-use-multiprocessing-queue-in-python转载 2021-03-23 14:19:56 · 236 阅读 · 0 评论 -
python 如何判断继承的子类重写了某方法
通用方法def method_is_overided_in_subclass(method_name: str, sub_class: Any, base_class: Any) -> bool: """Define whether subclass override specified method Args: method_name: to be defined method name sub_class: to be defined s.原创 2021-02-27 22:04:21 · 615 阅读 · 0 评论 -
python 装饰器
python 装饰器的详细描述见https://zhaochj.github.io/2016/05/05/2016-05-05-%E5%B8%A6%E5%8F%82%E6%95%B0%E7%9A%84%E8%A3%85%E9%A5%B0%E5%99%A8/一:函数装饰函数def wrapFun(func): def inner(a, b): print('function name:', func.__name__) r = func(a, b) .原创 2021-02-27 21:30:16 · 69 阅读 · 0 评论 -
python 中的 abc 模块
Python中的abc模块文章目录Python中的abc模块 前言 判断类型 isinstance实现原理 实现ABC类 其他基类 总结 前言在《抽象基类(ABC)》中,基于C++讲述抽象基类。尽管Python设计上以鸭子类型为主,但仍有抽象基类(ABC)的一席之地,它被封装在了abc模块中供程序员使用。abc模块有以下两个主要功能:某种情况下,判定某个对象的类型,如:isinstance(a, Sized) 强制子类必须实现某些方法,即ABC类的派.原创 2021-02-01 00:46:01 · 792 阅读 · 0 评论 -
python 实现 with 管理的类
具体实现思路依赖在类中的两个魔法方法:__enter__、__exit__本博客来源于https://stackoverflow.com/questions/1984325/explaining-pythons-enter-and-exit比如存在需求:在 with 管理器中创建 database 的链接,跳出 with 管理器之后关闭掉链接代码示例class DatabaseConnection(object): def __enter__(self): # .原创 2021-01-29 14:05:46 · 108 阅读 · 1 评论 -
如何在指定用户目录下安装 python,限于 linux
本博客参考http://thelazylog.com/install-python-as-local-user-on-linux/!!!个人的操作是在 docker 容器中进行的,在第三步中,需要保证 --prefix 的值在容器和虚机中的路径是一致的,才可以保证安装完成后,使用 docker cp 复制到宿主机中可以直接使用。1. 下载 python 源码curl -LO <url>2. 安装需要使用到的 app,apt install make gcc -y3. 解压..原创 2021-01-25 00:17:11 · 470 阅读 · 0 评论 -
python 怎么获取字节的编码类型
def decodeOutput(output: bytes): """ 用于对输入字节解码并输出 :param output: :return: """ # 获取字节的编码方式 encoding = chardet.detect(output)["encoding"] # 返回解码后的输出 return output.decode(encoding)...原创 2020-12-03 17:31:52 · 1033 阅读 · 0 评论 -
python 使用 csv 写入 csv 文件
CSV(Comma-Separated Values)即逗号分隔值,一种以逗号分隔按行存储的文本文件,所有的值都表现为字符串类型(注意:数字为字符串类型)。如果CSV中有中文,应以utf-8编码读写,如果要支持Excel查看,应是要用utf-8 with bom格式及utf-8-sigPython3操作CSV文件使用自带的csv包reader=csv.reader(f, delimit...原创 2020-04-14 13:21:13 · 642 阅读 · 0 评论 -
python 实现主线程等待子线程,超时后不再等待
import threadingimport timedef myThreading(count): for x in range(count): print(x) time.sleep(1) print("myThreading end")if __name__ == '__main__': t1 = threading.T...原创 2020-04-08 16:05:19 · 1488 阅读 · 0 评论 -
python 环境安装 hashlib 包
wget https://files.pythonhosted.org/packages/74/bb/9003d081345e9f0451884146e9ea2cff6e4cc4deac9ffd4a9ee98b318a49/hashlib-20081119.zipunzip hashlib-20081119.zipcd hashlib-20081119/python3 setup.py i...原创 2020-03-31 11:54:17 · 6140 阅读 · 0 评论 -
python 进程 线程 协程
本文主要介绍多线程、多进程、协程的最常见使用,每个的详细说明与介绍有时间会在以后的随笔中体现。一、多线程1.python通过两个标准库thread和threading提供对线程的支持。thread提供了低级别的、原始的线程以及一个简单的锁。threading通过对thread模块进行二次封装,提供了更方便的API来操作线程。接下来只介绍threading的常见用法。import th...原创 2020-01-01 23:34:47 · 145 阅读 · 0 评论 -
理解Python协程:从yield/send到yield from再到async/await
Python中的协程大概经历了如下三个阶段:1. 最初的生成器变形yield/send2. 引入@asyncio.coroutine和yield from3. 在最近的Python3.5版本中引入async/await关键字一、生成器变形yield/send普通函数中如果出现了yield关键字,那么该函数就不再是普通函数,而是一个生成器。def mygen(alist): ...转载 2020-01-01 19:40:41 · 124 阅读 · 0 评论 -
python socket 搭建长连接并保证进程退出后端口不会继续被占用
这样,无论server 还是 client 中途断掉,都可以选择重连继续服务socket-server.py#!/usr/bin/python2.7#coding=utf-8BUF_SIZE = 1024host = '0.0.0.0'port = 8080server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)...原创 2019-05-05 16:30:54 · 2994 阅读 · 0 评论 -
PyCharm 安装MarkDown插件,并修改.md文件默认打开方式
见http://www.bigyoung.cn/751.html转载 2019-03-29 12:31:29 · 1671 阅读 · 0 评论 -
python 中如何实现在类中给固定的方法打印日志
在类中写入该方法即可 def __getattribute__(self, func_name): if func_name in ('test1', 'test2', 'test3'): self.logger.info('call func: [%s]...', func_name) return object.__getat...原创 2019-04-01 10:06:22 · 338 阅读 · 1 评论 -
python 获取函数名字的办法
本博客转自https://www.zybuluo.com/spiritnotes/note/306113在程序处理中,有时候需要出现获取函数名字,这时有可能在函数内部,也有可能在函数外部,不同的情况下应该如何获取呢?函数外部在函数外部比较简单,直接采用__name__即可def fun_name(): passz = fun_nameprint(z.__name__...转载 2019-04-05 14:33:38 · 8714 阅读 · 0 评论 -
python如何连接mysql数据库
mysql的该操作中,其中增和改需要提交事务,删除和查询不需要提交事务import pymysqldb = pymysql.connect(host="127.0.0.1",user="root", password="123456",db="test",port=3306) # 连接数据库cursor = cur = db.cursor() #获取数据库的游标 cur...原创 2018-07-20 11:48:56 · 2379 阅读 · 0 评论 -
hasattr()、getattr()、setattr()之间的区别和使用
hasattr(object, name)判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。需要注意的是name要用括号括起来>>> class test():... name="xiaohua"... def run(self):... return "H...原创 2019-06-23 19:27:10 · 333 阅读 · 0 评论 -
django中的数据操作
django对数据库的操作分为增删改查:增操作的操作方式# 方式一car = Car(name="宝马3",price=20.5)car.save()# 方式二car = Car()car.name="宝马5i"car.price=50.5car.save()# 方法三Car.objects.create(name='奥迪Q1',price=34.5)car=...原创 2019-06-23 19:29:42 · 165 阅读 · 0 评论 -
python 日志重复输入
python logging 重复写日志问题用Python的logging模块记录日志时,遇到了重复记录日志的问题,第一条记录写一次,第二条记录写两次,第三条记录写三次。。。很头疼,这样记日志可不行。网上搜索到了原因与解决方案:原因:没有移除handler解决:在日志记录完之后removeHandler修改前示例代码:import loggingdef log(messa...原创 2019-04-04 10:27:21 · 375 阅读 · 0 评论 -
linux 系统中 Python 的跨目录导包出现问题怎么处理
# import sys# sys.path.append("<包所在的目录>") # import 包名如需要导 /root/app/ 下的 Info.py可以为 import syssys.path.append("/root/app/")import Info原创 2019-03-14 17:54:59 · 1371 阅读 · 0 评论 -
selenium 如何控制滚动条逐步滚动
自己在编写爬虫有时涉及到动态加载时,需要通过selenium控制滚动条逐步逐步的慢慢的往下滚动。这里先说下如何实现控制条移动: 原理:通过driver.execute()执行js代码,达到目的 ①driver.execute_script('window.scrollBy(0,1000)') # scrollBy(x,y)中,x为必须参数,表示向右滚动的像素值;y...原创 2018-07-17 02:50:34 · 8628 阅读 · 2 评论 -
Celery在Django中的应用
1、安装包pip install django-celery django-redis flower2、INSTALLED_APPS中加入 djceleryINSTALLED_APPS = [ ... 'djcelery', #加入djcelery]3、在settings.py中加入celery配置信息######django-celery配置#...原创 2018-07-20 15:35:10 · 1305 阅读 · 0 评论 -
jquery加载页面的方法(页面加载完成就执行)
这里有3种加载页面的方法:1、$(function(){ $("#a").click(function(){ //adding your code here }); }); 2、$(document).ready(function(){ $("#a").click(function(){ //adding your code here }...原创 2018-07-21 11:38:04 · 1475 阅读 · 0 评论 -
TCP与UDP的区别
TCP的优点: 可靠,稳定 TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连接用来节约系统资源。 TCP的缺点: 慢,效率低,占用系统资源高,易被攻击 TCP在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上维护所有的传输连接...转载 2018-07-21 13:45:00 · 1096 阅读 · 0 评论 -
jquery的ajxa请求
1、什么是ajax?AJAX = 异步 JavaScript 和 XML(Asynchronous JavaScript and XML)。简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。 2、jquery的ajax请求怎么实现这里介绍三种方式:1)、$(selector).load(URL,data,callback); #方法从服...原创 2018-07-21 17:10:11 · 1282 阅读 · 0 评论 -
python中与redis的连接方式
# 安装驱动pip install redispip install python-redisimport redis# 连接数据库db = redis.Redis(host=127.0.0.1,port=6379,decode_responses=False)# 如果要添加连接池则先创建连接池pool=redis.ConnectionPool(decode_response...原创 2018-07-20 13:25:39 · 3388 阅读 · 0 评论 -
request在爬虫中的常见使用情况
requests请求分为get请求和post请求。get请求的常用参数包括:url=self.url,params=data,headers=self.headersurl -->请求的路径地址(字符串类型)params-->请求的参数(字典类型)headers-->设置请求头(字典类型,常常用来设置User-Agent,模拟浏览器登录)proxies-->设置请求代理(字...原创 2018-07-14 14:50:01 · 2621 阅读 · 0 评论 -
单例模式的实现过程
1、什么是单例模式? 多个实例化的指向均是同一个内存地址,即为单例模式实现单例模式的五种方式:1.使用模块2.使用装饰器3.使用类4.基于__new__方法实现(推荐使用,方便)5.基于metaclass方式实现详情见:https://www.cnblogs.com/huchong/p/8244279.html ...转载 2018-07-25 16:18:56 · 1979 阅读 · 0 评论 -
django的admin后台管理如何更改为中文
新建Django的admin后端控制为英文显示,为了可以使其显示中文,可以将LANGUAGE_CODE = 'en-us'TIME_ZONE = 'UTC'更改为LANGUAGE_CODE = 'zh-Hans'TIME_ZONE = 'Asia/Shanghai'即可实现为中文显示...原创 2018-07-17 02:56:06 · 3300 阅读 · 0 评论 -
正向代理与反向代理的区别
正向代理与反向代理的理解见:https://blog.csdn.net/zhanghanboke/article/details/77488894正向代理需要配置,而且只能连接一个服务器;反向代理不需要配置,且可以连接多个服务器,从而实现负载平衡...原创 2018-07-23 11:13:50 · 1099 阅读 · 0 评论 -
Django中的Form和ModelForm
1.models表单定义:from django import forms # 导入表单模块from django.core.exceptions import ValidationError class RegisterForm(forms.Form): # 自定义表单类,并继承forms.Form email = forms.EmailField(widget=forms....转载 2018-07-18 12:07:08 · 1610 阅读 · 0 评论 -
sql语句操作之查询操作1
请用sql语句将下列表格: 变为表格2 sql语句如下:select year, round(max(if(mounth=1,amount,0)),2) m1, # 将值赋给m1 round(max(if(mounth=2,amount,0)),2) m2from jjgroup by year;# sql语句中的if(mounth=...原创 2018-07-24 16:17:18 · 1361 阅读 · 0 评论 -
ab web性能测试工具
Ubuntu中1)安装 sudo apt-get install apache2-utils2) 测试 ab -n 10000 -c 1000 url 其中,-n表示测试请求数目,-c表示并发数,url为指定的测试路径,是必须要填写的,否则会报“ab: invalid url ”错误-t timelimit 测试时间限制,单位秒-s timeout 每个请求时间...原创 2018-07-24 19:30:23 · 2062 阅读 · 0 评论 -
进程间的通信
实现两个进程的通信, 可以使用管道(pipe)和队列实现。进程通信的目的在于实现进程间变量的共享。1、管道管道也叫无名管道,它是 UNIX 系统 IPC(进程间通信 (Inter-Process Communication) 的最古老形式,是用来连接不同进程间的数据流 功能: 创建两个进程, 由进程A给进程B发消息, 由进程B给进程A发消息import osimport t...原创 2018-07-24 20:24:20 · 1146 阅读 · 0 评论 -
python中二进制的补码、源码和反码及位运算
部分内容转载来源于:https://www.cnblogs.com/everest33Tong/p/6586634.html二进制中的补码、源码和反码:1)正数的原码、反码、补码都是一样的2)负数的反码为原码符号位不变,其余取反。负数的补码为源码符号不变,其余取反再加1由于在机器系统中,数据一律用补码来存储,所以以下的运算均是以补码来进行运算的 Python中的按位运算符有:...转载 2018-07-25 12:05:57 · 6543 阅读 · 0 评论 -
python正则中如何匹配汉字
这里边重点用到了 r'[\u4e00-\u9fa5]+' 的正则规则,表示1到多个任意汉字。import restr1='hjggj小vjjk明'pat=re.compile(r'[\u4e00-\u9fa5]+')result=pat.findall(str1)print(result)# 输出['小', '明'] ...原创 2018-08-05 00:04:16 · 30449 阅读 · 5 评论