
python
wangjinyu124419
这个作者很懒,什么都没留下…
展开
-
window execjs执行js脚本报错:execjs._exceptions.ProgramError: Error: 此脚本包含恶意内容,已被你的防病毒软件阻止
execjs._exceptions.ProgramError: Error: 此脚本包含恶意内容,已被你的防病毒软件阻止用用人JScript环境会报错。换成node环境即可。原创 2022-05-06 22:28:26 · 1676 阅读 · 0 评论 -
Python全角与半角相互转换
unicode - Python: How can I replace full-width characters with half-width characters? - Stack Overflow2.9 将Unicode文本标准化 — python3-cookbook 3.0.0 文档原创 2022-03-12 15:09:39 · 1570 阅读 · 0 评论 -
pycharm UnicodeEncodeError: ‘gbk‘ codec can‘t encode character ‘\u0e21‘ in position 17: illegal mult
命令行输出正常,pycharm打印报错。文件编码试了gbk和utf-8都不行。如下图:原来还要再pycharm设置系统和项目级别的编码,都设置成utf-8就可以了。如下图:原创 2022-03-12 15:05:29 · 811 阅读 · 0 评论 -
python pillow 修改gif尺寸大小
from PIL import Imagefrom PIL import ImageSequenceim = Image.open('large.gif')resize_frames= [frame.resize((frame.width//2,frame.height//2)) for frame in ImageSequence.Iterator(im)]resize_frames[0].save("small.gif", save_all=True, append_images=resize.原创 2021-09-24 18:33:16 · 1365 阅读 · 0 评论 -
django 提交表单密码错误时保留密码
password = forms.CharField(label='密码', max_length=100, widget=forms.PasswordInput(render_value=True, attrs={'placeholder': '密码(最短6位)'}))https://docs.djangoproject.com/en/2.2/ref/forms/widgets/#passwordinputhttps://st...原创 2021-02-08 23:49:45 · 454 阅读 · 0 评论 -
Python 获取JavaScript变量,JavaScript转Python
以百度未登录状态下为例:import js2pyimport requestsfrom lxml import etreeurl = 'https://www.baidu.com'headers = { 'Connection': 'keep-alive', 'Cache-Control': 'max-age=0', 'Upgrade-Insecure-Requests': '1', 'User-Agent': 'Mozilla/5.0 (Windows .原创 2021-01-28 20:07:58 · 2465 阅读 · 0 评论 -
python 原地快速排序
#核心部分def partition(arr, low, high): i = low #最初的pivot位置 pivot = arr[high] # 取最后一个元素当做pivot for j in range(low, high): # 当前元素小于或等于 pivot if arr[j] <= pivot: arr[i], arr[j] = arr[j], arr[i] i = i + 1 .原创 2021-01-14 14:49:45 · 919 阅读 · 0 评论 -
celery 定时任务demo
目录结构:celery_schedule_demo├── __init__.py├── celery_server.py└── celery_task.pycelery_server.py# -*- coding: utf-8 -*-from celery import Celerymyapp = Celery('schedule')myapp.conf.broker_url = 'redis://localhost:6379/0'myapp.conf.result_b..原创 2021-01-05 00:38:18 · 528 阅读 · 2 评论 -
mongodb配置replica set 主从
简单点,单机不同端口两个节点,一主一从:mongod1.confsystemLog: destination: file path: /usr/local/var/log/mongodb/mongo.log logAppend: truestorage: dbPath: /server/mongodb/data1net: bindIp: 127.0.0.1 port: 40000replication: replSetName: rs-demomongod.原创 2020-11-26 00:57:52 · 902 阅读 · 0 评论 -
confluent kafka 单机集群、消费者组、多分区配置
mykafka_producer.py# -*- coding: utf-8 -*-from confluent_kafka import Producerfrom confluent_kafka.admin import AdminClientfrom confluent_kafka.cimpl import NewTopictopic = 'topic-demo'groud_id = 'demo.id'# kafka单机集群kafka_host = 'localhost:909.原创 2020-11-18 23:10:33 · 1622 阅读 · 0 评论 -
celery运行tornado的async语法异步任务
tornado_celery.py# -*- coding: utf-8 -*-import tornado.ioloopimport tornado.webfrom celery_app import async_consumeclass MainHandler(tornado.web.RequestHandler): async def get(self): async_consume.delay() self.write('success.原创 2020-11-02 01:20:56 · 446 阅读 · 0 评论 -
python 基于redis的令牌桶限流
不用redis的简化版,区分ip和接口# -*- coding: utf-8 -*-import timefrom flask import Flaskapp = Flask(__name__)capacity = 10 # 桶容量rate = 1 # 速率 每秒增加一个令牌last_time = int(time.time()) # 上次访问时间current_tokens = capacity # 当前令牌桶中令牌数量def can_access(): g原创 2020-10-23 17:11:44 · 1547 阅读 · 4 评论 -
celery 配置多队列
#celery_server.pyfrom __future__ import absolute_importfrom celery import Celeryfrom celery.signals import before_task_publish, after_task_publishfrom kombu import Queuemyapp = Celery('maintasks')myapp.conf.broker_url = 'redis://localhost:6379/0'.原创 2020-10-19 02:29:24 · 811 阅读 · 4 评论 -
uwsgi 重载配置文件
uwsgi配置文件修改后,uwsgi貌似不能直接重新加载修改后的配置文件,uwsgi --reload xxx.pid命令只能重载python代码,而不能重新读取修改后的uwsgi的配置文件。所以我只能通过uwsgi --stop xxx.pid 命令停止uwsgi进程。然后在通过uwsgi config.ini 重新启动服务,加载修改后的配置文件。supervisor、 nginx都可以通过reload命令重载配置文件。...原创 2020-10-18 22:44:36 · 1202 阅读 · 0 评论 -
git撤销错误合并merge
背景描述当前master分支,小明和小王在中午12点分别新建了a b 分支1.小明在a分支,下午1 3 5点分别提交了三个commit2.小王在b分支,下午2 4 6点分别提交了三个commit3.小明在a分支,在下午7点执行了git merge b,此时commit的顺序是1 2 3 4 5 6倒序,但是此时发现merge了错误分支,想回退到下午7点时的没merge的状态,即1 3 5commit状态,如何优雅的进行git回退操作?已知git cherry-pick 解决方案,有没有更..转载 2020-09-26 15:01:27 · 945 阅读 · 0 评论 -
python in列表list和in集合set耗时对比
# -*- coding: utf-8 -*-import randomimport timedef count_time(fun): def warpper(*args): s_time = time.time() fun(*args) e_time = time.time() t_time = e_time - s_time print('%s耗时:%s' % (fun.__name__, t_time).原创 2020-09-25 19:51:04 · 1343 阅读 · 1 评论 -
celery的task任务结果在redis存储乱码
用redis储存celery异步任务的结果,可以看到任务成功存进去了,127.0.0.1:6379[1]> keys *celery-task-meta-31a89019-4106-4685-8a71-0075d976d91e不过用这个key去查询的时候可以看到结果乱码:127.0.0.1:6379[1]> get celery-task-meta-31a89019-4106-4685-8a71-0075d976d91e�}q(UstatusqUSUCCESSqU tra原创 2020-09-19 20:37:53 · 1056 阅读 · 0 评论 -
python sort 多级排序&&中文数字排序
# -*- coding: utf-8 -*-book_list = [ "人教版一年级下(新版)", "人教版一年级上(新版)", "沪教版四年级上(新版)", "沪教版一年级下(新版)", "沪教版二年级下(新版)", "沪教版三年级下(新版)", "沪教版四年级下(新版)", "沪教版五年级下(新版)", "沪教版一年级上(新版)", "沪教版三年级上(新版)", "沪教版五年级上(新版)", "北师.原创 2020-08-25 18:40:18 · 2029 阅读 · 0 评论 -
python对mongodb关于json、unicode、string相关总结
最近接触了mongodb,处理json和Unicode字符串遇到些问题总结下。python2环境mac os系统# -*- coding: utf-8 -*-import jsonfrom pymongo import MongoClientclient = MongoClient('localhost', 27017)db = client['tumblelog']collection = db.user# user 查询出来是字典类型user = collection.原创 2020-08-22 18:27:15 · 952 阅读 · 0 评论 -
python 计时装饰器装饰递归函数
查到了两种方法:一个引入计次装饰器,一个是嵌套函数import timeclass Counter(object): def __init__(self, fun): self._fun = fun self.counter = 1 def __call__(self, *args, **kwargs): self.counter += 1 return self._fun(*args, **kwargs)de原创 2020-08-12 12:55:48 · 431 阅读 · 0 评论 -
pycharm console报错:ModuleNotFoundError: No module named ‘django‘
原因是pycharm开启了django支持,关掉就好了原创 2020-08-12 10:42:05 · 1242 阅读 · 0 评论 -
requests库:ImportError: cannot import name UnverifiedHTTPSConnection
执行下面这个导包命令报错:from requests.packages.urllib3.connection import UnverifiedHTTPSConnectionImportError: cannot import name UnverifiedHTTPSConnection查了半天没太多有用信息,盲猜是版本问题。果然通过requirements.txt文件安装的版本跟线上项目的文件版本不太一样。把urllib3和chardet的版本改成线上的版本就ok了。req...原创 2020-07-29 23:15:41 · 603 阅读 · 0 评论 -
python asyncio协程异步爬虫
实践一下python的asyncio异步协程相关的库,爬取豆瓣电影top250,自己边查边试,写出个基本的用法吧。import timeimport asynciofrom functools import wrapsimport requestsimport aiohttpfrom lxml import etreebase_url = 'https://movie.douban.com/top250?start={}&filter='headers = { "User-A原创 2020-06-15 00:04:42 · 1114 阅读 · 0 评论 -
pycharm debug sanic断点失效
auto_reload参数置为False就好了if __name__ == "__main__": app.run(auto_reload=False)https://github.com/huge-success/sanic/issues/1313#issuecomment-436641797原创 2020-06-10 16:04:35 · 748 阅读 · 0 评论 -
selenium实现无限滚动、循环滚动到底
今天做python动态网页觉得构造请求太麻烦,而网站几次滚动就能下拉到底,所以想着直接用selenium连续下拉滚动到底,然后直接一把梭。没搜到太好太直接的方案。边做边试大概实现了功能。核心代码就这么几句,思路就是用scrollBy一直下拉滚动条,然后scrollTop会一直变化,当scrollTop不变时,说明就到底了。跳出循环即可。import timefrom lxml import etreefrom selenium import webdriverdriver =webdri原创 2020-05-14 22:40:53 · 6191 阅读 · 4 评论 -
复制chrome请求头以及Copy as cURL直接转成python代码
python爬虫经常需要服务浏览器请求头,之前都是用pycharm批量替换。今天想看看有啥方便的方法没。结果发现了更超出预期的东西。chrome的Copy as cURL 和curl to python。下图是Copy as cURL,python去动态网页时经常需要寻找真正的结构然后利用参数构造请求。以https://fr.news.yahoo.com/politique/这个网站为例复制过来是这么一坨:curl 'https://fr.news.yahoo.com/_td/api/原创 2020-05-14 22:26:31 · 14299 阅读 · 4 评论 -
django admin 实现邮箱登录和邮箱唯一性
django1.10+python2.7django amdin后台实现email登录,1、重写一个验证后端,继承自系统的ModelBackend类,文档说重写get_user()这authenticate()方法,我这里只重写了authenticate()方法。利用利用Q对象同时查询username和email。#cus_backends.pyfrom django....原创 2020-04-24 21:56:41 · 2381 阅读 · 0 评论 -
django mysql Error loading MySQLdb module: %s" % e
换电脑直接mac迁移助手迁移过来,mysql卸载重装后django报错。Error loading MySQLdb module: %s" % e解决:1、卸载原来的mysql相关的库pip uninstall MySQL-pythonpip uninstall mysqlclient2、配置mysql环境变量export PATH=$PATH:/usr/loca...原创 2020-03-17 18:27:56 · 297 阅读 · 1 评论 -
python定义变量后面加逗号
之前只知道定义元组的时候如果只有一个元素需要在后面加逗号最近发现定义变量的时候如果后面加逗号也会被识别为元组,t= 'a',type(t)Out[10]: tuples='a'type(s)Out[12]: str...原创 2020-03-15 00:26:04 · 3263 阅读 · 0 评论 -
djanog AttributeError: 'module' object has no attribute '_time'
django1.9升级到1.11下面代码报错from django.utils import timezoneattr=timezone._time.time()django1.9 /site-packages/django/utils/timezone.py源码有一句import time as _timedjango1.11取消了,本质是就是用的Python的t标准...原创 2020-03-08 18:46:31 · 800 阅读 · 0 评论 -
Python相对导入:ValueError: attempted relative import beyond top-level package
首先明确,Python相对导入只能在同一package下而言的。项目结构:server.py文件#server.pyimport sysprint(sys.path)from pack1.mod1 import func1from pack1.mod1_1 import func1_1from pack1.pack2.mod2 import func2from pa...原创 2020-03-08 16:03:54 · 46102 阅读 · 7 评论 -
django实现模型字段动态choice
需求是根据当前登录用户来显示不同的选项。先放现在的实现版本。1、重写PushRuleForm的__init__方法,让每次实例化PushRuleForm时,test_mode字段的choices根据用户重新赋值class PushRuleForm(forms.ModelForm): def __init__(self, *args, **kwargs): ...原创 2020-03-01 22:14:41 · 1902 阅读 · 0 评论 -
python包和文件夹的区别
#server.pyfrom package.modb import funbfrom directory.moda import funafuna()funb()import package.modbimport directory.modadirectory.moda.funa()package.modb.funb()python3中,有没有__init__.py...原创 2020-02-26 14:46:28 · 3789 阅读 · 2 评论 -
pycharm项目根目录作为Python导包路径的说明
之前知道pycharm会将项目根目录作为Python导包路径,今天想看看官方文档说明,如下:Source rootscontain the actual source files and resources. PyCharm uses the source roots as the starting point for resolving importshttps://www.jetb...原创 2020-02-26 11:53:04 · 3399 阅读 · 0 评论 -
pycharm .idea文件夹的作用
What is the .idea folder?FOLLOWDaria DovzhikovaUpdatedFebruary 05, 2020 05:59The.ideafolder (hidden on OS X) in the solution root contains IntelliJ’s project specific settings files. Thes...转载 2020-02-26 11:13:12 · 3765 阅读 · 0 评论 -
Python查看第三方库、包的所有可用版本,历史版本
第一:https://my.oschina.net/linbingfeng/blog/885485第二:利用pycharm安装第三方库是勾选specify version,就能看到第三方库的各个版本了第三:利用yolk3k,这是Python对应的版本,官方文档:https://pypi.org/project/yolk3k/安装:pip install --upg...原创 2020-02-23 22:19:08 · 10785 阅读 · 0 评论 -
image_match TypeError: _open() got an unexpected keyword argument 'as_grey'
mac os python3.7跑image_match库的demo时报错,traceback如下:Traceback (most recent call last): File "/Users/wangjinyu/PycharmProjects/machine-learning/image.py", line 3, in <module> a = gis.gene...原创 2020-01-05 23:32:32 · 8082 阅读 · 4 评论 -
ERROR: Package 'GitPython' requires a different Python
mac os Python2.7.6安装GitPython提示错误ERROR: Package 'GitPython' requires a different Python最新的GitPython已经不支持Python2,要么换Python2要么安装老版本的GitPythonUbuntu系统下Python2环境安装GitPython会直接安装2.1.14,不会报错。2.1.14是...原创 2019-11-27 17:13:22 · 1302 阅读 · 0 评论 -
python利用requests库模拟登录,过程解析
之前尝试用requests直接请求登录失败了,都是直接用selenium简单粗暴的登录。今天看了看大佬《网络爬虫开发实战》模拟登录部分,又收获不少。利用requests模拟登陆的关键:第一:是要找到相应的请求地址第二:找到要请求头中对应的提交表单Form Data的各种字段,以及他们的值第一步:是要找到相应的请求地址拿豆瓣为例,在登录界面时别输入用户名密码或者输入错误的用户...原创 2019-11-14 23:42:38 · 1587 阅读 · 0 评论 -
Python 重复输出日志、日志打印两次
设置日志的代码:#log_setup.pyimport loggingdef setup_log(name=__name__,filename=None): logger = logging.getLogger(name) logger.setLevel(level=logging.INFO) formatter = logging.Formatter(fm...原创 2019-11-13 16:36:16 · 9942 阅读 · 0 评论