- 博客(156)
- 资源 (11)
- 收藏
- 关注
原创 python中的线程相关概念简单梳理
1.简单启动一个线程python标准库提供了threading模块,启动一个线程就是把一个函数传给Thread实例,再调用start()运行起来import threadingimport timedef loop(): print(f'----------thread :{threading.current_thread().name} is running...') ...
2019-06-27 22:14:00 327
原创 Python的type和object之间到底是什么关系?
V2EX上有个问题:三年左右的 Python 后端 , 大概要能到什么样到水平才合格啊?下面的回复众说纷纭,但是有个问题比较新颖:描述一下 type 与 object 的关系,查了一下网上的答案,加上一些自己的理解写到这里备忘(其实印象中以前在某本书上看过的,但是不想翻书找,搜索引擎提高学习效率啊)前提是我们已经了解了面向对象编程中的类的继承关系,类的实例化概念,在这个基础上来理解会更容易一些。...
2019-06-01 12:00:57 3706 1
原创 python 类 __slots__ 可限制添加属性和优化减少内存占用
1.给类或者示例添加属性和方法正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,对于class本身也是一样的2.使用__slots__如果先要对class和实例加以限制,可以在定义class的时候,定义一个__slots__,来限制能够添加的属性:这么做之后,没在__slots__里面标记好的属性就不能随便添加到类或者示例中了...
2019-03-31 11:05:03 538
原创 sys.argv[] 用法
sys.argv[]是用来获取命令行输入的参数的(参数和参数之间空格区分),sys.argv[0]表示代码本身文件路径,所以从参数1开始,表示获取的参数了例子0:test.py#-*-coding:utf-8-*-from sys import argvscript,first,second,third = argvprint ("The script is called:{%s}"% scrip
2017-11-18 21:36:08 33086 1
原创 对于Python中@property的理解和使用
重看狗书,看到对User表定义的时候有下面两行 @property def password(self): raise AttributeError('password is not a readable attribute') @password.setter def password(self, password): self.pass
2017-09-02 22:03:22 68867 10
原创 python 图片、文件 通过 request header 多线程下载
写爬虫过程中发现图片下载比较慢,遂使用多线程下载来提速import threadingimport requestsclass MulThreadDownload(threading.Thread): def __init__(self, url, startpos, endpos, temp_dict, headers, proxies): super(MulT...
2020-02-20 14:47:36 2975
原创 python3 requests https 请求 报 SSLContext 相关递归错误
一、错误信息:2019-11-19 15:14:40 : Provider before requests .post2019-11-19 15:14:41 : error infoTraceback (most recent call last): File "/root/operation/spider/web/lh_spider_config/utils/run_provider/s...
2019-11-19 17:10:29 4570 1
原创 selenium webdriver chrome 获取 文件 下载 链接 (js生成的链接,点击事件发送请求并弹窗的那种)
import jsonfrom selenium import webdriverfrom selenium.webdriver.chrome.options import Optionsfrom selenium.webdriver.common.desired_capabilities import DesiredCapabilitieschrome_options = Option...
2019-11-12 23:04:22 3319
原创 爬虫 headless 访问 知道创宇 加速乐 CDN 网站
通过 requests.get 直接请求网站首页,返回 521 错误提示码,返回结果是js代码。这是采用加速乐反爬技术,在访问前先判断客户端的cookie是否正确,如果不正确,返回521状态码和一段js代码,并且进行set-cookie操作,返回的js代码经过浏览器执行又会生成新的cookie,这两个cookie一起发送给服务器,才会返回正确的网页内容试了下代码demo如下,有cookie就带上...
2019-10-23 11:47:55 916 1
原创 python爬虫 伪装 使用 mitmproxy 通过js验证
是否爬虫可以通过如下的方式检测出来爬虫如何通过https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html的检测1. 爬虫的代码chrome headless 配置、基本安装和使用可以参考:http://www.voidcn.com/article/p-hwlrznzi-bp...
2019-10-12 14:01:33 937
原创 python 重写logging.Handler的emit 实现日志输出到 redis 数据库
python中想要把日志输出到redis,可以写一个类继承logging.Handler,并重写emit方法来实现import loggingimport datetimefrom redis import StrictRedis, ConnectionPoolfrom core.settings import REDIS_HOST, REDIS_DB, REDIS_PORTpool ...
2019-09-27 14:18:35 3119
原创 1.6 在字典中将键映射到多个值上
字典是一种关联容器,每个键都映射到一个单独的值上,如果想让键映射到多个值,需要将这多个值保存到另一个容器如列表或者集合中。要使用列表或者集合取决于应用的意图,如果希望保留应用的插入顺序就用列表,如果希望不重复就用集合。为了能方便的创建这样的字典,可以使用collections模块中的defaultdict类...
2019-09-09 17:31:52 216
原创 1.5 实现优先级队列
想要实现一个队列,能够以给定的优先级来对准荣盛排序,而且每次pop操作时候都会返回优先级最高的那个元素使用heapq模块来实现一个简单的优先级队列import heapqclass PriorityQueue: def __init__(self): self._queue = [] self._index = 0 def push(sel...
2019-09-08 12:42:13 218
原创 1.4 找到最大或者最小的N个元素
一、N=1 使用min、max如果只是简单的想找到最小或最大的元素(N=1时),使用min和max最快二、N约等于集合长度,先排序如果N和集合的本身大小差不多,通常更快的方法是先对集合进行排序,然后做切片操作,例如sorted(items)[:N]或者sorted(items)[-N:]三、N小于集合长度 使用heapq如果我们想在某个集合中找到最大或者最小的N个元素,使用heapq中的...
2019-09-08 11:25:57 517
原创 1.3 保存最后N个元素
在迭代或者其他形式的处理过程中对最后几项记录做一个有限的历史记录统计from collections import dequedef search(lines, pattern, history): previous_lines = deque(maxlen=history) for line in lines: if pattern in line: ...
2019-09-05 16:37:09 142
原创 1.2 从任意长度的可迭代对象中分解元素
1.2 从任意长度的可迭代对象中分解元素使用*表达式来代替多项record = (1,2,3,4,5,6)a,*b,c = recordprint(a,b,c)输出:1 [2, 3, 4, 5] 6
2019-09-05 16:03:41 165
原创 1.1 将序列分解为单独的变量
只要对象是可迭代的,字符串、文件、迭代器生成器都行,就可以执行分解操作,例如x,y = (4,5)name, date = ['acme', (2012, 12, 12)]_, shares, price, _ = ['acme',50, 91.1, (2012,12,12)]...
2019-09-05 15:50:51 177
原创 跟着董伟明大佬的书了解了解 python常用的类库
一、errno在日常开发中经常需要捕获各种异常,做特殊处理。举个例子: os.kill(12345,0)输出Traceback (most recent call last): File "/Users/zhangkun/Documents/GitHub/geektime/test.py", line 4, in <module> os.kill(12345...
2019-08-02 10:41:51 815 1
转载 再用半个小时你就可以彻底了解 python3.6协程中的async/await的来源了
看到一篇非常明晰的讲述,转载过来备忘Python中的协程大概经历了如下三个阶段:最初的生成器变形yield/send引入@asyncio.coroutine和yield from在最近的Python3.5版本中引入async/await关键字一、生成器变形yield/send普通函数中如果出现了yield关键字,那么该函数就不再是普通函数,而是一个生成器。def mygen(al...
2019-08-01 18:15:06 1817
原创 一个小时理解同步异步、阻塞非阻塞、IO多路复用、select、poll、epoll等概念
一、同步、异步、阻塞与非阻塞1.同步与异步1.1 同步与异步概念同步和异步的概念与消息的通知机制有关。同步与异步主要是从消息通知机制角度来说的。同步就是一个任务的完成需要依赖另外一个任务时,只有等待被依赖的任务完成后,依赖的任务才能算完成,这是一种可靠的任务序列。要么成功都成功,失败都失败,两个任务的状态可以保持一致。异步是不需要等待被依赖的任务完成,只是通知被依赖的任务要完成什么工作...
2019-08-01 18:13:22 2641
原创 Git 入门教程
via runoob一、配置/etc/gitconfig 文件:系统中对所有用户都普遍适用的配置。若使用 git config 时用 --system 选项,读写的就是这个文件。~/.gitconfig 文件:用户目录下的配置文件只适用于该用户。若使用 git config 时用 --global 选项,读写的就是这个文件。当前项目的 Git 目录中的配置文件(也就是工作目录中的 .gi...
2019-07-30 15:39:06 256
原创 普通人该如何买保险
一、买之前:预防销售套路1. 第一种套路:停售平时我们怎么接触到保险呢?除了说在电视上经常看到广告之外,是不是我们身边的代理人,也就是说,我们的亲戚朋友的代理人,主动来找到我们:“哎呀,是不是给孩子买个保险呀,要帮孩子存一点钱!”或者是说:“哎呀,你要买一个什么保险,可以年年领,月月领,一直领到死!”这种话呢,经常会从他们的嘴巴里面讲出来,那么到底她们讲的这些话,里面哪些是属于套路呢?最常...
2019-07-04 23:04:02 553
原创 macOS pip 安装 mysqlclient 报错
ld: library not found for -lsslclang: error: linker command failed with exit code 1 (use -v to see invocation)error: command 'clang' failed with exit status 1export LIBRARY_PATH=$LIBRARY_PATH:/usr...
2019-05-13 14:39:44 650 1
原创 macOS home-brew安装 旧版本 python
brew install python 会默认安装最新的python3.7,非常坑爹,很多导入包都不好使了,坑死老子了办法:1.卸载python3.7brew uninstall python2.修改python.rb去 https://www.python.org/ftp/python/3.6.8/ 找到想要的3.6版本,下载下来然后去/usr/local/Homebrew/Li...
2019-05-13 11:33:36 2926
原创 Django admin 添加 自定义 页面 不带 数据 模型 models
一、先确认admin该有的都有1.urls.pyfrom django.contrib import adminurlpatterns = [ url(r'^admin/', include(admin.site.urls)),]2.seetings.pyINSTALLED_APPS = [ 'django.contrib.admin',]二、从app里面写好自定义...
2019-05-10 17:43:36 2049
原创 python 全局变量 重载 错误 local variable referenced before assignment
python2.7 Django 1.8概述:当在函数外声明了全局变量,在函数内重新声明,就会覆盖函数外的全局变量,如果函数外或者其他函数对全局变量有引用,此时会导致错误local variable referenced before assignment出现背景:Django orm 采用代理模型继承和自定义管理器对默认模型拿到的queryset做了调整,为了使查到的数据都是调整后的q...
2019-05-07 17:03:24 3829
原创 数据结构习题 单链表操作
一、书:http://images.china-pub.com/ebook4905001-4910000/4909472/ch03.pdf二、题:三、答案:import copyclass Node: """ 节点类,value是本节点值,next是指向的下一节点 """ def __init__(self,value,next=None): ...
2019-04-19 15:55:22 631
原创 python 常用模块 之 requests 模块
1. GET请求1.访问一个页面import requestsr=requests.get('http://www.so.com')print(r.status_code)print(r.text)2.带参数import requestsparams = {'a':1,'b':2}r=requests.get('http://www.so.com', params=param...
2019-04-07 15:07:51 342
原创 python随机生成字母验证码图片
from PIL import Image, ImageDraw, ImageFont, ImageFilterimport randomdef rndChar(): return chr(random.randint(65,90))def rndColor(): return (random.randint(64,255),random.randint(64,255),...
2019-04-06 16:19:21 633
原创 python 常用模块 之 datetime 模块
datetime是Python处理日期和时间的标准库1. 获取现在的日期时间2. 获取指定日期时间直接用参数构造即可3.datetime对象转时间戳直接调用datetime对象的timestamp方法即可4.时间戳转datetime对象用datetime对象的fromtimestamp方法,参数是时间戳5.字符串和datetime对象互转1.字符串转datetime直接用...
2019-04-02 16:48:09 235
原创 python 类中的 特殊方法
1. 打印和输出相关__str____repr__分别应用于打印和直接显示2.用于循环如果一个类想被用于for循环,那这个类就必须实现__iter__()和__next__()方法3.用下标获取元素如果想要用下表[x]的方式来获取元素,name需要在类方法里面实现__getotem__()如果要赋值用__setitem__()方法,如果要删除某个元素用__delitem__(...
2019-03-31 14:19:56 833
原创 python类中的 装饰器 @property
1.set和get方法熟悉java的同学可能知道,java类中对属性可以IDE自动生成对应的get和set方法,但是python中没有的,python比较自由,但是自由的设置和读取类或者实例的属性,就没办法在设置和读取的时候进行一些检查了,对于 这种情况我们可以手动写自己的set和get方法2. 作为一个懒蛋,我觉得有点麻烦能不能像普通属性调用那样简单粗暴的调用set和get方法呢,答案是...
2019-03-31 11:33:39 332
原创 Nginx + uwsgi 简单部署 Djnago 视频工具 web 项目(www.videotools.cn)
视频工具: http://www.videotools.cn环境:ubuntu腾讯云主机docker容器内一、uwsgi 安装与配置1.uwsgi 安装pip install uwsgi2.uwsgi 配置在项目根目录下新建文件:video_tools_uwsgi.ini[uwsgi]socket = /home/video_tools.sockchdir = /homem...
2018-12-13 23:53:33 376
原创 macOS PyCharm 快捷键 使用技巧
mac上面的PyCharm 使用技巧欢迎使用Markdown编辑器格式化代码万能键(自动import)主动提示另起一行搜索IDE功能代码模版搜索一切查找文件,类, 方法快速选择代码块快速插入常用代码展开/收缩代码函数调用层级可视化实时显示文档欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读...
2018-12-11 15:16:02 2456 1
原创 Linux macOS 批量 文件 行首 添加 字符
比如想给py文件开头都加上coding:utf-8防止python2.7运行报错就这么写:find app -name “*.py” -exec sed -i ‘’ -e ‘1i #coding:utf-8’ {} ;参考:https://my.oschina.net/jsk/blog/166974谷歌大法好啊,搜狗一下午没找到解决方案...
2018-11-27 16:26:28 1281
原创 crontab 定时执行django自定义命令的坑
项目需求是要求一个月前的云主机快照都要删除,想着写个Django自定义命令,扔到crontab里面跑,跑来跑去测试和我说没删掉,怎么会?一开始怀疑crontab,但是试试其他任务都跑了啊,然后django自定义命令里面加日志也没见到有日志输出,最后我成哥提醒,加crontab日志,终于发现症结所在了。。。日志显示jango.db.utils.OperationalError: (2003, ‘C...
2018-10-26 20:34:40 1181
原创 MySQL-python Error loading MySQLdb module: libmysqlclient.so.18
Django 项目重新部署到同事给我的的一台centos服务器上之后,运行出现错误:MySQL-python Error loading MySQLdb module: libmysqlclient.so.18可知这是缺少so文件引起的,但是find / -name libmysqlclient.so.18又找不到文件,装了mysql后只能找到libmysqlclient.so.20文件!...
2018-09-11 11:00:18 2380
原创 自动更新 SVN 复制 替换 文件 windows 批处理 bat 脚本 计划任务
1. 自动更新SVN最新代码到本地cd C:\Program Files\TortoiseSVN\binstart TortoiseProc.exe /command:update /path:"C:\Users\kyle\Documents\理想私有云\SVN167\trunk" /closeonend:3C:\Program Files\TortoiseSVN\bin是Tortois...
2018-05-16 12:15:39 1190
原创 Docker中部署Django项目记录
有很多构建方式,记录下本次使用docker部署的过程,日后参考1.构建docker环境安装docker,略 端口映射外部82到80docker pull pythonrun -itd -p 82:80 --name YYST 6bf7a4fa2d45docker exec -it YYST bash2.装服务,装git,拉代码从https://github.com/584...
2018-04-26 09:36:56 2688 1
原创 Django使用mysql视图
一.Mysql视图的创建MySQL中,在两个或者以上的基本表上创建视图,例如:在StudentOrm表和InfoOrm表上,创建mysql_view_test_orm视图1.首先,创建两张表 from django.db import models# Create your models here.class StudentOrm(models.Model): ...
2018-04-19 14:32:08 7166 3
流畅的python
2017-10-30
算法图解 高清 PDF
2017-08-04
bootsect MBR VBR 磁盘 引导 修复
2017-03-31
bootsect.exe
2017-03-31
sqljdbc_4.0.2206.100_chs
2014-08-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人