python
sunghosts
这个作者很懒,什么都没留下…
展开
-
Linux上部署Jupyter notebook
在浏览器输入服务器的IP地址:9999,小编这里是34.81.173.39:9999,访问。原创 2024-04-24 13:49:13 · 462 阅读 · 1 评论 -
pandas整理
pandas 小技巧原创 2021-04-27 15:45:38 · 87 阅读 · 0 评论 -
tornado使用confluent_kafka之消费者无法进入循环
tornado 使用kafka原创 2022-07-16 11:48:22 · 569 阅读 · 0 评论 -
python操作mysql
Python Mysql开发有使用原生SQL语言和ORM框架两种方式。下面介绍下其中涉及到的知识点。Python连接mysql的驱动包python的mysql驱动包常用的有三个,分别是: pymysql, mysql-connector, MySQLdb。三个包都遵循PEP 249使用方式大同小异。mysql-connector 是 MySQL 官方提供的驱动器, 它在Python中重新实现MySQL协议,它比较慢,但不需要C库,因此可移植性好。MySQLdb是一个围绕mysql的瘦Python包装原创 2022-01-01 16:36:01 · 809 阅读 · 0 评论 -
python json.dump json文件中文明文
转:http://litaotju.github.io/python/2016/06/28/python-json-dump-utf/在写爬虫时,使用python自带的json模块将网页中需要的信息输出保存到json文件中,发现json文件中的中文 格式全是类似于”\u5176\u5b83”的形式。可见该模块将输出的中文进行了 编码,将utf-8码直接变成了 ascii字符的形式。所以这些字符无法直接阅读。 要直接输出中文需要使用 json.dump()函数的 ensure_ascii=False选项。同转载 2021-12-08 15:58:30 · 365 阅读 · 0 评论 -
This event loop is already running
在jupyter notebook中使用asyncio包时,会发生This event loop is already running的错误。解决办法是安装nest_asynciopip install nest_asyncio并在导入前调用import nest_asyncionest_asyncio.apply()原创 2021-09-16 15:54:33 · 371 阅读 · 0 评论 -
生成器之Send方法--python
转:https://www.cnblogs.com/lanyinhao/p/9137956.html#send主要是用于外部与生成器对象的交互def func1(): # 生成器函数 print("ok1") x = 10 # 函数内局部变量x赋值为10 print(x) x = yield 1 # 这里就是send函数的关键 # 之前我们创建的生成器,yield左边都是没有值(我现在不是很确定这里是不是应该叫做返回值,那就先用值代替)。 # 现在我们转载 2021-08-02 20:09:40 · 543 阅读 · 0 评论 -
爬虫--伪元素提取
用cssselector无法提取伪元素,用xpath可以原创 2021-07-11 23:49:03 · 256 阅读 · 0 评论 -
python requests post 请求
测试自己写的rest服务url = 'http://localhost:5000/xxx'data = {"text":text}headers = {"Content-Type":"application/json,charset=utf8"}res = requests.post(url=url,json=data,headers=headers)if res.status_code == 200: res = str(res.content, encoding='utf-8').re原创 2021-06-24 17:23:20 · 171 阅读 · 0 评论 -
Python使用Mysql连接池
转:https://blog.csdn.net/qq_29113041/article/details/99690070为什么要用数据库连接池平常可能习惯使用pymysql或者一些数据库连接包去跟数据库交互,代码可能是这样的:import pymysql config = { 'host': config_template['MYSQL']['HOST'], 'port': config_template['MYSQL']['PORT'], 'user': config_t转载 2021-05-07 10:28:34 · 277 阅读 · 0 评论 -
python异常try except else finally的理解
转:https://www.cnblogs.com/Alins/p/14237058.html异常处理try的语法大致是:try: pass #容易出错的语句块except 某种错误类型: pass #遇到错误时候的动作else: pass #没有出错,正常执行的时候的动作finally: pass #无论如何,最终都进行的步骤except的动作和 else的动作只会生效其中一种,可以理解为判断语句if和else的关系如下图:转载 2021-04-28 17:15:05 · 254 阅读 · 0 评论 -
python装饰器
转:https://www.cnblogs.com/cicaday/p/python-decorator.html装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的函数或对象添加额外的功能。怎么写一个装转载 2021-04-18 00:34:40 · 55 阅读 · 0 评论 -
python生成器
转:第4.2节 神秘而强大的Python生成器精讲Python生成器生成器是一个特殊的迭代器,它保存的是算法,每次调用next()或send()就计算出下一个元素的值,直到计算出最后一个元素,没有更多的元素时,抛出StopIteration。生成器有两种类型,一种是生成器表达式(又称为生成器推导),一种是生成器函数。生成器表达式生成器表达式是通过一个Python表达式语句去计算一系列数据,但生成器定义的时候数据并没有生成,而是返回一个对象,这个对象只有在需要的时候才根据表达式计算当前需要返回的数据。转载 2021-04-15 18:19:12 · 67 阅读 · 0 评论 -
python面向对象--抽象类
抽象类是不能被实例化的类,它用于指定子类必须提供哪些功能,却不实现这些功能。抽象类要有抽象方法,子类实现所有抽象方法后就才能实例化,当然抽象类也可以有非抽象的方法。抽象类的子类通过继承跟抽象类发生关联,子类通过super()调用抽象类中定义的方法。python是支持面向对象的编程语言,其实现通过第三方扩展库来实现:abc(Abstract Base Class)模块。Python的抽象基类使用有两种方式:真实子类和虚拟子类。真实子类真实子类必须完全实现抽象基类的所有抽象方法。一个栗子:impor原创 2021-04-06 23:32:37 · 284 阅读 · 0 评论 -
python面向对象--方法解析顺序(MRO)
转载:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/8311429.html对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于基类,所以在方法调用时就需要对当前类和基类进行搜索以确定方法所在的位置。而搜索的顺序就是所谓的「方法解析顺序」(Method Resolution Order,或MRO)。对于只支持单继承的语言来说,MRO 一般比较简单;而对于 Python 这种支持多继承的语言来说,MRO 就复杂很多。先看一个「菱形继承」转载 2021-04-06 23:28:58 · 257 阅读 · 1 评论 -
python面向对象--接口
java中的接口接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型原创 2021-04-06 23:28:28 · 704 阅读 · 0 评论 -
gunicorn配置文件
gunicorn.py配置文件的一个简单版本:# 并行工作进程数workers = 4# 指定每个工作者的线程数threads = 2# 监听内网端口5000bind = '0.0.0.0:5000'# 设置守护进程,将进程交给supervisor管理daemon = 'true'# 工作模式协程worker_class = 'gevent'# 设置最大并发量worker_connections = 2000# 设置进程文件目录pidfile = '/var/run/gunico原创 2021-04-06 17:45:51 · 790 阅读 · 0 评论 -
gunicorn控制日志大小
转:gunicorn日志的问题由于我们在使用的过程中,日志越打越多,出来了好几十个G,我的天啊。所以这里我找到了个解决方案:配置文件写上logconfig_dict = { 'version':1, 'disable_existing_loggers': False, 'loggers':{ "gunicorn.error": { "level": "DEBUG",# 打日志的等级可以换的,下面的同理 "hand转载 2021-04-06 17:14:42 · 2063 阅读 · 1 评论 -
Python--reshape
numpy中reshape函数的三种常见相关用法numpy.arange(n).reshape(a, b) 依次生成n个自然数,并且以a行b列的数组形式显示np.arange(16).reshape(2,8) #生成16个自然数,以2行8列的形式显示# Out: # array([[ 0, 1, 2, 3, 4, 5, 6, 7],# [ 8, 9, 10, 11, 12, 13, 14, 15]])mat (or array).reshape(c, -转载 2021-03-31 11:22:53 · 285 阅读 · 0 评论 -
conda虚拟环境jupyter notebook
在base环境下执行conda install nb_conda如果出现下面错误Cannot link a source that does not exist. Anaconda3\Scripts\conda.exe更新condaconda update conda再次打开jupyter notebook,安装的虚拟环境会自动被发现。原创 2021-03-10 10:21:53 · 256 阅读 · 0 评论 -
汉字unicode编码范围
GB2312编码:1981年5月1日发布的简体中文汉字编码国家标准。GB2312对汉字采用双字节编码,收录7445个图形字符,其中包括6763个汉字。BIG5编码:台湾地区繁体中文标准字符集,采用双字节编码,共收录13053个中文字,1984年实施。GBK编码:1995年12月发布的汉字编码国家标准,是对GB2312编码的扩充,对汉字采用双字节编码。GBK字符集共收录21003个汉字,包含国家标准GB13000-1中的全部中日韩汉字,和BIG5编码中的所有汉字。GB18030编码:2000年3月17日转载 2020-10-09 10:58:10 · 865 阅读 · 0 评论 -
Python类的内置方法
文章目录1. new、init2、str、repr3、call4、del5、iter、next6、getitem、setitem、delitem7、getattr、setattr、delattr8、getatrribute9、enter、exit10、get、set、delete、描述符(研究中,待补充)1. new、init__new__方法是真正的类构造方法,用于产生实例化对象(空属性)。重写__new__方法可以控制对象的产生过程。__init__方法是初始化方法,负责对实例化对象进行属性值初始转载 2020-07-31 17:36:01 · 460 阅读 · 0 评论 -
如何使用Python读取大文件
转: https://www.cnblogs.com/wenBlog/p/8441231.html背景最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法。准备工作我们谈到“文本处理”时,我们通常是指处理的内容。Python 将文本文件的内容读入可以操作的字符串变量非常容易。文件对象提供了三个“读”方法: .read()、.readline() 和 .readlines(转载 2020-07-31 16:10:04 · 143 阅读 · 0 评论 -
如何优雅的退出/关闭/重启gunicorn进程
转载:http://www.chenxm.cc/article/561.html在工作中,会发现gunicorn启动的web服务,无论怎么使用kill -9 进程号都是无法杀死gunicorn,经过我一番百度和谷歌,发现想要删除gunicorn进程其实很简单。第一步获取Gunicorn进程树:通过执行如下命令,可以获取Gunicorn进程树:pstree -ap|grep gunicorn得到的结果如下| | |-grep,14519 --col转载 2020-07-03 14:48:31 · 635 阅读 · 0 评论 -
numpy--pad函数的常用方法
参数解释ndarray = numpy.pad(array, pad_width, mode, **kwargs)array为要填补的数组pad_width是在各维度的各个方向上想要填补的长度,如((1,2),(2,2)),表示在第一个维度上水平方向上padding=1,垂直方向上padding=2,在第二个维度上水平方向上padding=2,垂直方向上padding=2。如果直接输入一个整数,则说明各个维度和各个方向所填补的长度都一样。mode为填补类型,即怎样去填补,有“const原创 2020-06-29 15:27:11 · 380 阅读 · 0 评论 -
tqdm—Python进度条的使用
前言有时候在使用Python处理比较耗时操作的时候,为了便于观察处理进度,这时候就需要通过进度条将处理情况进行可视化展示,以便我们能够及时了解情况。这对于第三方库非常丰富的Python来说,想要实现这一功能并不是什么难事。tqdm就能非常完美的支持和解决这些问题,可以实时输出处理进度而且占用的CPU资源非常少,支持windows、Linux、mac等系统,支持循环处理、多进程、递归处理、还可以...转载 2020-04-18 17:36:11 · 417 阅读 · 0 评论 -
客户端-服务端模型介绍(RPC,SOAP,REST)
前言最近几年, Web 程序有种趋势,那就是业务逻辑被越来越多地移到了客户端一侧,开创出了一种称为富互联网应用(Rich Internet Application, RIA)的架构。在 RIA 中,服务器的主要功能(有时是唯一功能)是为客户端提供数据存取服务。在这种模式中,服务器变成了 Web 服务或应用编程接口(Application Programming Interface, API)。...原创 2020-03-21 00:36:58 · 299 阅读 · 0 评论 -
Flask-SQLAlchemy
Flask-SQLAlchemy配置配置键连接 URI 格式使用自定义的元数据和命名约定¶配置下面是 Flask-SQLAlchemy 中存在的配置值。Flask-SQLAlchemy 从您的 Flask 主配置中加载这些值。 注意其中的一些在引擎创建后不能修改,所以确保尽早配置且不在运行时修改它们。配置键Flask-SQLAlchemy 扩展能够识别的配置键的清单:名称解释...转载 2020-03-17 17:04:36 · 144 阅读 · 0 评论 -
tensorflow各个版本的CUDA以及Cudnn版本对应关系
转载:tensorflow各个版本的CUDA以及Cudnn版本对应关系转载 2020-02-17 11:08:30 · 220 阅读 · 0 评论 -
Python打包分发工具setuptools
分发工具 setuptools曾经 Python 的分发工具是 distutils,但它无法定义包之间的依赖关系。setuptools 则是它的增强版,能帮助我们更好的创建和分发 Python 包,尤其是具有复杂依赖关系的包。其通过添加一个基本的依赖系统以及许多相关功能,弥补了该缺陷。他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加...转载 2019-08-16 16:51:30 · 135 阅读 · 0 评论 -
python 日志
‘’’import loggingfrom logging import handlersclass Logger(object):level_relations = {‘debug’: logging.DEBUG,‘info’: logging.INFO,‘warning’: logging.WARNING,‘error’: logging.ERROR,‘crit’: logg...转载 2019-05-27 13:48:10 · 87 阅读 · 0 评论 -
python--Flasgger使用心得
转载:https://changsiyuan.github.io/2017/05/20/2017-5-20-flasgger/#引言Flask是一款流行的Python实现的Web开发微框架;Swagger是一款Restful接口的文档在线自动生成+功能测试功能软件;通过swagger能够清晰、便捷地调试符合Restful规范的API;在flask框架中使用的swagger即为flasg...转载 2018-10-23 17:44:16 · 9414 阅读 · 0 评论 -
python_logging模块
转自:http://www.cnblogs.com/dahu-daqing/p/7040764.html1.简介logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息print将所有信息都输出到标准输...转载 2018-09-26 10:55:31 · 114 阅读 · 0 评论 -
python学习
文章目录#基础就目前而言, 应使用小写的Python变量名。 在变量名中使用大写字母虽然不会导致错误, 但避免使用大写字母是个不错的主意。如果你要从列表中删除一个元素, 且不再以任何方式使用它, 就使用del 语句; 如果你要在删除元素后还能继续使用它, 就使用方法pop()。 你不知道要从列表中删除的值所处的位置。 如果你只知道要删除的元素的值, 可使用方法remove() 。方法rem...原创 2018-09-26 09:51:06 · 144 阅读 · 0 评论 -
python--类的专有方法
转载:类的专有方法前面已经了解了类的访问权限、私有变量和私有方法,除了自定义私有变量和方法外,Python类还可以定义专有方法。专有方法是在特殊情况下或使用特殊语法时由Python调用的,而不是像普通方法一样在代码中直接调用。看到形如xxx的变量或函数名就要注意,这在Python中是有特殊用途的。__str__介绍之前,我们先定义一个Student类,定义如下:#!/u...转载 2018-08-30 10:53:16 · 503 阅读 · 0 评论 -
Python--os模块和shutil模块
一、python中对文件、文件夹操作时经常用到的os模块和shutil模块常用方法。1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.返回指定目录下的所有文件和目录名:os.listdir()3.函数用来删除一个文件:os.remove()4.删除多个目录:os.removedirs(r“c:\python”)5.检验给出的路径是否是一个文转载 2017-12-10 13:45:07 · 705 阅读 · 0 评论 -
Python--使用技巧(查看类结构)
对于我这样的初学者,大概没有比在编程中能够快速查找帮助文档更重要的事情了。在Python命令行的编程环境中,查找类结构可以通过以下命令import mathdir(math)['__doc__', '__name__', '__package__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil',原创 2017-12-09 15:57:36 · 2910 阅读 · 0 评论