
python加油鸭
文章平均质量分 50
一只猪皮怪5
这个作者很懒,什么都没留下…
展开
-
使用requests+parsel+pandas+mysql完成的一个爬虫示例
【代码】使用requests+parsel+pandas+mysql完成的一个爬虫示例。原创 2023-05-12 17:02:27 · 306 阅读 · 0 评论 -
Python 日常高频写法总结
抛出异常:UnboundLocalError,原来编译器在解释i+=1时会把i解析为函数h()内的局部变量,很显然在此函数内,编译器找不到对变量i的定义,所以会报错。classmethod 装饰器对应的函数不需要实例化,不需要 self 参数,但第一个参数需要是表示自身类的 cls 参数,可以来调用类的属性,类的方法,实例化对象等。那么,我们不妨猜测:Student 类,类型就是 type,换句话说,Student类就是一个对象,它的类型就是 type,所以,Python 中一切皆对象,类也是对象。原创 2023-01-29 17:46:49 · 381 阅读 · 0 评论 -
用pandas生成excel文件示例,并调整excel的格式或样式
当我们有特殊的需求时,比如要修改excel的行宽列宽,还有字体样式等等原创 2022-06-27 11:47:05 · 6974 阅读 · 0 评论 -
UnicodeEncodeError: ‘locale‘ codec can’t encode character ‘\u5e74‘ in position 2: Python 时间戳转换出错
时间戳与时间字符串转换原创 2022-06-20 16:24:58 · 1413 阅读 · 0 评论 -
Python try...except...时捕获异常时具体文件和行数
def try_exception_test(): try: a = 0 b = 1/a print(b) except Exception as e: print(e) # 发生异常所在的文件 print(e.__traceback__.tb_frame.f_globals["__file__"]) # 发生异常所在的行数 print(e.__traceback.原创 2021-07-08 18:49:59 · 4227 阅读 · 0 评论 -
python 列表List转换成树形结构
原始数据:list中嵌套dict的数据格式 转换结果:数结构的数据,children字段嵌套的形式,适用于前端树形结构的渲染def list_to_tree(data): root = [] node = [] # 初始化数据,获取根节点和其他子节点list for d in data: d["choice"] = 0 if d.get("parent_id") == 0: root.append(d)原创 2021-06-22 12:01:16 · 3055 阅读 · 1 评论 -
Jupyter NoteBook 的快捷键使用指南
Jupyter NoteBook 的快捷键使用指南Jupyter Notebook 有两种键盘输入模式。即命令模式和编辑模式,这与Vim有些类似。在编辑模式下,可以往单元中键入代码或文本,此时单元格被绿色的框线包围,且命令模式下的快捷键不生效。在命令模式下,可以用快捷键命令运行单元格,移动单元格,切换单元格编辑状态等等,此时的单元格被灰色的框线包围,且编辑模式下的快捷键不生效。从命令模式进入编辑模式需按Enter键,从编辑模式切换到命令模式需按Esc键。以下两表分别是对命令和编...原创 2020-09-25 17:22:50 · 754 阅读 · 0 评论 -
Celery 的用法介绍
celery介绍什么是celery这次我们来介绍一下Python的一个第三方模块celery,那么celery是什么呢?celery是一个灵活且可靠的,处理大量消息的分布式系统,可以在多个节点之间处理某个任务。 celery是一个专注于实时处理的任务队列,支持任务调度。 celery是开源的,有很多使用者。 celery完全基于Python语言编写。所以celery是一个任务调度框架,类似于Apache的airflow,当然airflow也是基于Python语言编写。不过有一点需要注意,转载 2020-08-18 17:35:35 · 780 阅读 · 1 评论 -
TypeError: expected str, bytes or os.PathLike object,not FileStorage 文件上传 Flask报错
上传一个文件 file 本来想通过open()来打开文件进行处理的,但是却报错了@app.route('/getfile', methods=['POST'])def getfile(): request_data = request.files['file'] rsrcmgr = PDFResourceManager() retstr = io.StringIO() codec = 'utf-8' laparams = LAParams() devi.原创 2020-07-23 15:12:40 · 3160 阅读 · 0 评论 -
Python SQLAlchemy 连接MySQL的CURD操作 使用上下文管理 session
使用contextmanager 来管理 from sqlalchemy import create_enginefrom sqlalchemy.orm import scoped_session,sessionmakerdb_connect = "mysql+pymysql://root:password@localhost:3306/db_name?charset=utf8"create=create_engine(db_connect)SessionType=scoped_s...原创 2020-07-08 17:20:59 · 397 阅读 · 0 评论 -
Python SQLAlchemy 自动生成模型 models 文件
安装模块pip3 install sqlacodegen执行 sqlacodegen mysql+pymysql://root:password@127.0.0.1:3306/db_name > test_model.pyroot:mysql 用户password:mysql 密码db_name: 数据库名称test_model.py:导出的名字--tables test : 可以指定test数据表查看 py 文件 得到以下from sqlalchemy i...原创 2020-07-08 16:57:56 · 3772 阅读 · 0 评论 -
python epoll socket实例
import socket, loggingimport select, errnologger = logging.getLogger("network-server")def InitLog(): logger.setLevel(logging.DEBUG) fh = logging.FileHandler("network-server.log") fh.setLevel(logging.DEBUG) ch = logging.StreamHandler.原创 2020-06-23 16:17:44 · 250 阅读 · 0 评论 -
进程间通信-Queue
可以使用multiprocessing模块的Queue实现多进程之间的数据传递,Queue本身是一个消息列队程序,首先用一个小实例来演示一下Queue的工作原理:import multiprocessingimport timeif __name__ == '__main__': # 创建消息队列, 3:表示队列中最大消息个数 queue = multiprocessing.Queue(3) # 放入数据 queue.put(1) queue.put("h原创 2020-06-19 17:20:22 · 329 阅读 · 0 评论 -
websocket 与 socket 非阻塞通信
记录一下import selectimport socketimport threadingfrom flask import Flaskfrom flask_sockets import Socketsfrom gevent import pywsgifrom geventwebsocket.handler import WebSocketHandlerapp = Flask(__name__)sockets = Sockets(app)class Config(obj.原创 2020-06-12 11:52:05 · 1502 阅读 · 0 评论 -
常见几种加密算法的Python实现
生活中我们经常会遇到一些加密算法,今天我们就聊聊这些加密算法的Python实现。部分常用的加密方法基本都有对应的Python库,基本不再需要我们用代码实现具体算法。一、MD5加密全称:MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。md5加密算法是不可逆的,所以解密一般都是通过暴力穷举方法,通过网站的接口实现解密。Python代码.原创 2020-05-29 09:17:58 · 1256 阅读 · 0 评论 -
selector Python selectors模块 I/O多路复用
selectors模块此模块允许高级和高效的I / O多路复用,构建在select模块原语上。鼓励用户使用此模块,除非他们需要精确控制所使用的操作系统级原语。( 默认使用epoll,但由于Windows不支持epoll,如果在你的Windows上找不到epoll的话,就会用select) 它定义了一个抽象基类,有几个具体的实现工具(KqueueSelector, EpollSe...原创 2020-04-29 10:18:04 · 297 阅读 · 0 评论 -
Python IO模型(阻塞、非阻塞、多路复用与异步)
IO模型 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同环境下给出的答案也是不一的。所以先限定一下上下文是非常有必要的。本文讨论的背景是Linux环境下的network IO。在深入了解之前,我们应先了解几个概念: 用户空间和内核空间 - 进程切换 - 进程的阻塞 - 文件描述符 - 缓存 I/O用户空间与内核空间 现在...转载 2020-04-29 10:03:47 · 639 阅读 · 0 评论 -
基于Python Flask 详解 OAuth 2.0 (以github为例)
OAuth2流程图OAuth2 对于我来说是一个神秘的东西,我想初步的弄懂中间的整个流程,于是就去google搜索相关的文档资料。在浏览了参差不齐的各种文章后,简述 OAuth 2.0 的运作流程基本对于小白来说是最浅显明了的。这篇文章以用户使用 github 登录网站留言为例,详述 OAuth 2.0 的运作流程。整个OAuth2 的流程分为三个阶段:网站和 Githu...转载 2020-04-16 17:03:07 · 2445 阅读 · 0 评论 -
Python 常用库 模块 插件 大全
python 常用库大全 整理版转载 2020-04-16 16:31:27 · 1465 阅读 · 0 评论 -
No application found. Either work inside a view function or push an application context. (Flask报错解决)
No application found. Either work inside a view function or push an application context.flask 报了这个错,字面意思是说没有应用上下文,字面给的解决意见是要么放置在一个视图内,要么提供一个应用(flask)上下文.这是采用crate_app()来创建Flask app 的一种错误可以采用装饰器来解决,...原创 2020-04-03 17:59:40 · 2068 阅读 · 0 评论 -
Python 各种进制相互转换 16进制转换成2进制 不够用0补齐 前面补0
2进制 8进制 10进制 16进制 2进制 - bin(int(x, 8)) bin(int(x, 10)) bin(int(x, 16)) 8进制 oct(int(x, 2)) - oct(int(x, 10)) oct(int(x, 16)) 10进制 int(x, 2) int(x, 8) ...原创 2020-03-27 15:18:15 · 18509 阅读 · 2 评论 -
SQLAlchemy 中的 Session,sessionmaker,scoped_session详解
一、关于SQLAlchemy什么是SQLAlchemy?答:SQLAlchemy是一个关系型数据库框架,它提供了高层的 ORM 和底层的原生数据库的操作,让开发者不用直接和 SQL 语句打交道,而是通过 Python 对象来操作数据库,在舍弃一些性能开销的同时,换来的是开发效率的较大提升。一句话:就是对数据库的抽象!Session 其实 就是一个会话, 可以和数据库打交道的一个会...转载 2020-03-25 17:48:54 · 8256 阅读 · 2 评论 -
python之sqlalchemy详解
python之sqlalchemy详解SQLAlchemy连接数据库可以使用ORM框架操作数据库ORM框架 = object relationship mappiy 框架学习前提(软件)mysql、pymysql(或者MySQLdb)、SQLAlchemySQLAlchemy连接数据库步骤首先导入sqlalchemy.create_engine 输入配置信息(服务...转载 2020-03-25 09:28:14 · 18838 阅读 · 0 评论 -
pip install 安装速度很慢问题解决方案
手动更换源清华:https://pypi.tuna.tsinghua.edu.cn/simple阿里云:http://mirrors.aliyun.com/pypi/simple/中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/华中理工大学:http://pypi.hustunique.com/山东理工大学:http://pypi.sdutl...原创 2020-03-11 17:40:32 · 1086 阅读 · 0 评论 -
Python定时任务 每隔一定时间运行一次函数/任务 python的定时任务
每隔一定时间运行一次函数/任务 例子中每10秒执行一次…def func_task(): print('执行任务中...')def func_timer(): func_task() global timer # 定义全局变量 # 定时器构造函数主要有2个参数,第一个参数为时间,第二个参数为函数名 timer = threading.Timer(1...原创 2020-03-06 14:43:33 · 9849 阅读 · 1 评论 -
Python实现通用装饰器
from functools import wrapsdef decorator(func): @wraps(func) def inner(*args, **kwargs): # 这里可以写你额外希望增加功能的代码 return func(*args, **kwargs) return inner...原创 2020-03-02 17:03:39 · 146 阅读 · 0 评论 -
Python中开启多线程的装饰器
Python中开启多线程的装饰器import randomimport threadingimport timedef run_async(func): def wrapper(*args, **kwargs): thr = threading.Thread(target = func, args = args, kwargs = kwargs) ...原创 2020-03-02 16:57:49 · 1120 阅读 · 0 评论 -
Python 用flask_sockets模块实现websocket 自定义路由实现websocket服务端
flask_sockets模块的使用 可以自定义路由 socket路由的访问地址为ws://localhost:端口/自定义的地址 如ws://localhost:5000/echo当创建一个ws的时候,接收到了数据,但是却想返回(send)到另外一个ws,这怎么办呢后端代码import randomimport threadingimport timeimport dat...原创 2020-03-02 16:49:41 · 2315 阅读 · 0 评论 -
python 简单的音乐播放器(面向对象思想写的)
音乐播放器import osimport pygameimport timeclass MusicPlayer(): musicList = [] volume = 0.5 path = r"C:\Users\Administrator\Desktop\music" index = 0 @classmethod def getMusicP...原创 2019-03-08 20:16:55 · 827 阅读 · 0 评论 -
python小项目 用函数写一个简单的ATM系统(满足登陆注册查询转账改密冻结解锁的功能)
简单的ATM系统使用函数调用的方法,适合初学者学习参考import randomdisplay='''*********************** ** welcome to bank ** ***********************'''display2='''************...原创 2019-03-02 11:50:33 · 1085 阅读 · 0 评论 -
用python 获取当前时间(年-月-日 时:分:秒),并且返回当前时间的下一秒
获取当前时间,并且返回当前时间的下一秒因为存在年-月-日 时:分:秒考虑到用split的方法做的话非常麻烦所以引入time和datetime模块当然 也可以改写成输入一个时间import datetime,timenow_time=datetime.datetime.now()str_time=now_time.strftime("%Y-%m-%d %X")tup_time=ti......原创 2019-03-02 11:24:13 · 17381 阅读 · 1 评论 -
python常见基础小练习
python常见基础小练习(新手学习,有错请谅解)1.输入一个年份,判断是否为闰年。条件1:不能被100整除且能被4整除条件2:被400整除【世纪年】year = int(input("请输入一个年份:"))if year %4 == 0 and year %100 != 0: print("%d年是闰年"%year)elif year %400 == 0: print...原创 2019-02-20 19:38:19 · 216 阅读 · 0 评论 -
新手学习python基础:常用数学函数
新手学习python基础:常用数学函数import math,randomprint()‘’’1.数字类型之间的转换 int() float() str()2.常用的数学函数abs() 返回绝对值max() 返回最大值min() 返回最小值pow(x,y) 求x的y次方的值round(x,[n]) 返回浮点数的四舍五入值,n代表小数点后的位数,python3中向偶数靠拢‘’...原创 2019-02-20 19:28:40 · 373 阅读 · 0 评论 -
倒过来的九九乘法表以及百钱买百鸡的问题
使用for循环打印九九乘法表,倒过来# for i in range(9,0,-1):# for j in range(i,0,-1):# print("%dx%d=%d"%(j,i,j*i),end="\t")# print("")# print("",end="\t"*(10-i)*2)5.百钱买百鸡,现有100文钱,公鸡5文钱一只,母鸡...原创 2019-02-21 20:43:05 · 308 阅读 · 0 评论