python
WarmSword
Show u what I do, what I like, what I need, what I am interested in. Yes, it is all about me. That's all. :)
http://allenwu.club
展开
-
python3搭https服务
很多时候搭个私有服务会很方便,很常规的应用,比如传个文件啥的。有时候某些场景下要求必需是https服务。怎么搭呢。1、安装openssl2、生成证书密钥对# 直接默认生成openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650 -keyout key.pem -out cert.pem# openssl req ...原创 2020-02-20 09:58:34 · 4404 阅读 · 1 评论 -
pytesseract subprocess file not found
pytesseract subprocess file not foundPython识别验证码的神器pytesseract。这是一个现成的库,直接pip就可以安装。兼容python3。但是网上许多人都舍近求远,要去整pytesser。pytesser呢,只有0.01版本。而且原生态是python2下的,python3下还不能直接使用。要使用还需要做些修改。而且,这库还没有pip版本。需要自己手动下原创 2017-10-11 21:33:07 · 2133 阅读 · 0 评论 -
python脚本自动发邮件
python脚本自动发邮件有一个邮箱,长期不用就会被收回了。自己想保留这个邮箱,又不想经常人为登录,所以想写个脚本来定时完成这个工作。网上搜索了解了一下,多是说使用smtplib这个库。确实这个库就是原始的库,也很好使,就是用起来需要写一堆代码,而且用户名、密码需要明文放置。这里推荐一个两行代码发送一封邮件的方式,使用yagmail库。 github链接:https://github原创 2018-01-14 09:52:14 · 816 阅读 · 0 评论 -
Python中的timezone
Python中的timezone1、问题来源最近折腾django做网站,发现存储到数据库中的时间在本机和vps上显示出来是不一样的。牵引出时区的相关问题。2、时区的作用一言以蔽之,就是世界通用。单独一个时间,没有时区信息,可能不同地方的人会觉得是不同的时间。没有时区的时间可以认作是信息不全的。假如去国外参加一个国际会议,时区用错,岂不白瞎。3、哪个时区最通用UTC时间。这里加了“最”。。。。为啥这么原创 2018-01-08 21:21:40 · 26226 阅读 · 0 评论 -
python: __main__ is not a package
python: __main__ is not a package 编写python单元测试代码碰到了这样一个问题。原因:相对导入通过查找相关资料,定位到这是一个包、模块相对导入所引起的。引起这个问题的代码类似如下:from .package import mymoduleif __name__=="__main__": do_something()...原创 2018-02-14 11:30:36 · 29274 阅读 · 3 评论 -
pycharm 中设置pylint
pycharm中设置pylint工具来源 pylint是一个不错的代码静态检查工具。将其配置在pycharm中,随时对代码进行分析,确保所有代码都符合pep8规范,以便于养成良好的习惯,将来受用无穷:)。配置 一张截图说明所有的配置。如下:使用参数说明--init-hook "import sys;sys.path.append('..');sys.path.append(...原创 2018-02-15 19:57:01 · 9849 阅读 · 0 评论 -
python中的private、下划线、类变量
python中的private、下划线、类变量1. python中没有private、protected,但是有个惯例官方文档是这么写的: 9.6. Private Variables and Class-local References “Private” instance variables that cannot be accessed except from ...原创 2018-02-27 22:35:45 · 1310 阅读 · 0 评论 -
python requests使用socks5
python requests使用socks5网络爬虫由于一个ip频繁访问同一网站,容易返回456或者被长时间封禁。特别的本机有socks5客户端的设置如下,前提是已经安装了socks5的客户端软件,并且启动起来在固定端口为本机提供服务。使用前先更新requests版本为支持socks的版本。pip install -U requests[socks]import re...原创 2018-03-01 13:54:14 · 22930 阅读 · 5 评论 -
pycharm交互式调试小技巧
pycharm交互式调试小技巧利用python进行一个新的库的探索的时候,交互式比较方便。因为可以即时写一行代码,然后得出一个输出,而一次性将代码写好然后一起执行需要对库的使用方法较为清楚才可以。交互式执行调试可以用shell、cmd、ipython之类的。这里介绍一种利用pycharm进行交互式调试的小技巧。pycharm中断执行小技巧比较笨的方法:断点。为啥说比较笨,因为...原创 2018-05-06 10:25:45 · 18461 阅读 · 0 评论 -
django全栈(三): celery周期任务-避免linux中的crontab
django全栈(三): celery周期任务-避免linux中的crontab需求 假设做出来的网站是一个新闻类的网站,需要定时去抓取一些数据,然后存入数据库,当有人访问时,将新的数据刷新显示出来。 此时就需要一个周期任务了。比如每隔5分钟抓一次数据,根据实际的需要,可能还有多个周期任务。 周期任务的实现,可以采用linux自带的crontab,但是很丑。而且没有d...原创 2018-06-11 23:24:05 · 943 阅读 · 0 评论 -
django全栈(四):django-备份数据库到dropbox
django全栈(四):django-备份数据库到dropbox需求 我有一个vps,既可以当梯子的服务端,也放了我的django网站。有一个很坑的地方是,不能登陆邮箱发邮件。是的,用smtplib、yagmail发邮件,统统连不上服务器,但是可以ping通邮件服务网关。 为这个问题,我还在stackoverflow上奋战了多日,有些说是25端口被禁用,需要找厂家咨询,申请开通...原创 2018-06-11 23:56:04 · 877 阅读 · 0 评论 -
django全栈(一):前后端技术栈简析
django全栈(一):前后端技术栈简析 要做全栈,真正的用一门语言前后端通用打天下的,貌似只有javascript,但是也还包含一些前端的脚本之类css、html之类的。从严格的意义上来讲,没有一门语言能把一个大的系统全部包圆完成,很多是根据实际需要,选择合适的技术栈,甚至用上docker微服务之类的。由此可见,语言并不是问题,问题在于是否合适,适合于团队现状,适合于项目特点,适合于...原创 2018-06-01 18:53:50 · 2490 阅读 · 1 评论 -
django全栈(二):django模板-从史前文明到现代文明
django全栈(二):django模板-从史前文明到现代文明 原谅我第二篇就直接跳跃到了模板这里。。。因为按照正常的循序渐进的方式,应该先讲讲概念、整体结构、组件关系之类的。而这篇直接就到了专题。是的,就是专题。因为我觉得这个很重要,而且容易被忽视。而一旦被忽视,就会出现味道比较坏的代码,不符合dry原则的代码,这个是很不好的。所以,直接从这里说起。背景 django渲染模板...原创 2018-06-01 20:39:55 · 408 阅读 · 3 评论 -
django语法小结
django语法小结URLurlpatterns = [ path(r"category/<int:pk>", CategoryView.as_view(), name="category"), path(r"category/<str:name>", CategoryView.as_view(), name="category"),]Modelclass原创 2018-06-26 21:15:01 · 793 阅读 · 0 评论 -
django全栈(五):django-subdomains实现子域名
买回来的域名多是some.xxx,比如我的allenwu.club。前缀可以不写也可以写成www,或者写成其他有特定含义的子域名。域名解析但是要记住不写与写www是两个不同的地址,如果你在服务商那里绑定ip与域名的时候写得是固定地址的话。当然在服务商那里的域名解析可以写成自动适配的方式,比如将*.allenwu.club绑定到一个ip。这样所有的子域名都会定向到你的指定ip的主机。然后在主...原创 2019-02-10 15:05:10 · 855 阅读 · 0 评论 -
django全栈(六):QuerySet概要
数据库里的数据要展示出来,查询筛选必不可少。复杂一点的可能会让刚接触的人抓狂。官方文档:https://docs.djangoproject.com/zh-hans/2.1/ref/models/querysets入门级-filter:Friend.objects.filter(gender="female",height__gt=165,name__contains="芳",...原创 2019-05-04 10:20:30 · 189 阅读 · 0 评论 -
Python 10行代码打印光标处窗口句柄
spy++可以很方便查看windows窗口各个子控件属性。但是有时候首先你得定位到你想要的窗口,而这个可能会是一个比较费时间的事,因为可能要从大量窗口中去找。如果可以获取当前光标处窗口句柄那就方便多了。import win32apiimport win32guiimport timeif __name__ == '__main__': while True: ...原创 2019-08-18 08:55:23 · 1416 阅读 · 0 评论 -
python下的单例模式
原文出处:https://segmentfault.com/a/1190000008141049http://python.jobbole.com/87294/单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象就能派上用场。比如,某个转载 2017-10-12 11:20:13 · 297 阅读 · 0 评论 -
Python以文字界面利用pdb进行调试
Python以文字界面利用pdb进行调试本人有一个python脚本,windows下用pycharm开发,在vps上运行。但是Windows下好好,到vps偶尔有些功能总有bug。当然,开发环境与运行环境不一致确实有些坑。MobaXterm登陆vps文字界面,太多的print确实不利于调试,都下不去输命令了。。。全是打印的调试信息。于是,安利了下命令行方式调试python脚本。发现跟gdb很相似。p原创 2017-09-07 21:28:50 · 657 阅读 · 0 评论 -
Python形参打包与解包小技巧
Python形参打包与解包小技巧Python中的函数调用与c++不同的是将this指针直接作为self当作第一个形参进行处理,从而将静态函数与实例方法的调用形式统一了起来。在实际编程过程中,可以通过传递函数的地址、函数的形参的方式将所有函数(包括静态函数、类实例函数)的调用用统一的方式表达出来,方便统一接口和抽象。待传递的2个函数如下:class Operation: @staticmetho原创 2016-08-14 14:48:37 · 6082 阅读 · 0 评论 -
python交互式登陆远录机器并令其关机
python交互式登陆远程机器并令其关机用脚本实现自动化很方便,当遇到交互式的操作该如何处理呢。expect是一个利器。Python中也有expect相关模式pexpect。写了一个小例子,实现远程登陆另一远程机器并执行关机命令。代码如下:import pexpectdef shutdown_remote_sys(ip, username, password): # ssh login原创 2016-10-23 15:12:17 · 2120 阅读 · 0 评论 -
Centos7 安装pyenv及相关包
Centos7 安装pyenv有时多个python版本还是希望用pyenv隔离下,避免不同版本库间的影响干扰。提前安装好依赖的库文件sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-d原创 2016-09-04 19:03:21 · 5114 阅读 · 0 评论 -
FileNotFoundError: [Errno 2] No such file or directory: 'tesseract'
FileNotFoundError: [Errno 2] No such file or directory: ‘tesseract’报错问题如下Traceback (most recent call last): File "identCode.py", line 36, in <module> print(getCode(sys.argv[1])) File "identCode原创 2017-01-30 10:57:47 · 16593 阅读 · 0 评论 -
一个简单的文件传输验证码识别c/s实现
一个简单的文件传输验证码识别c/s实现大体思路client通过tcp向server传输一个待识别的验证图片,server端识别后通过tcp回传给client。 server端识别验证码采用pytesseract。 环境:server/python3.5/ubuntu1604,client/Qt5.3/win7。1、文件传输tcp很多人都很熟悉,经常用来传递数据。但如何用于传递文件呢。尝试过的同学原创 2017-01-30 16:13:47 · 786 阅读 · 0 评论 -
Vim正则表达式-python print一键加括号
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。如果你比较熟悉Perl的正规表达式,可以直接参照与Perl正则表达式的区别一节。一、使用正则表达式的命令使用正则表达式的命令最常见的就是 / (搜索)命令。其格式如下:/正则表达式另一个很有用的命令就是 :s(替换)命令,将第一个//之间的正则表达式替换成第二个//之间的字符串。:s/正则转载 2016-07-20 18:34:53 · 1962 阅读 · 0 评论 -
ctypes中使用WindowFromPoint
ctypes中使用WindowFromPointctypes是一大利器,为Python调用c库函数、dll使用等提供了极大的便利。 但是使用ctypes下的函数遇到一些复杂的数据类型传参时怎么使用对接的数据类型呢。 很简单的比如使用ctypes.windll.user32.WindowFromPoint(POINT)函数。这个POINT类型Python中是没有的,而且ctypes下没有此类型。如原创 2017-03-08 20:55:50 · 1326 阅读 · 0 评论 -
利用pywinauto操作另一进程中treeview
利用pywinauto操作另一进程中treeviewfrom pywinauto import DesktopDesktop()["父窗口标题"].window(handle=treeview句柄).select("\\某一级分支名\\某二级分支名")如果自己用win32 api去写函数的话,需要用到VirtualAllocEx在目标进程开辟内在,还要发送TVM_EXPAND、TVGN_NEXTV原创 2017-03-22 19:39:58 · 3762 阅读 · 0 评论 -
python stock数据包tushare
原文链接http://www.361way.com/python-stock-tushare/4579.htmlTuShare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据来源方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Pytho转载 2017-03-22 20:34:19 · 1903 阅读 · 0 评论 -
Python比较2个时间的大小
Python比较2个时间的大小Python中有time和datetime,不过二者都直接取出日期和时间。 当需要比较2个时间的先后时,这两个类的函数都显得有些过于复杂。因为它们都带上了日期。如果仅想比较时间,取出当前时间会带有日期信息,而指定比较的目标时间时还要给日期部分赋值。那个time_struct,一大堆的参数。赋值感觉很麻烦哦。简单的比较函数此处用time写了一个简易比较方法。思路是将时间原创 2017-03-09 23:18:01 · 78579 阅读 · 5 评论 -
DataFrame筛选数据与loc用法
DataFrame筛选数据与loc用法python中pandas下的DataFrame是一个很不错的数据结构,附带了许多操作、运算、统计等功能。如何从一个DataFrame中筛选中出一个元素呢。以tushare返回的交易日信息为例。df = ts.trade_cal()数据如下: calendarDate isOpen0 1990/12/19 11 19原创 2017-04-22 18:21:31 · 27794 阅读 · 0 评论 -
Python日期加减运算
Python日期加减运算Python中的time与datetime基本是你中有我,我中有你的关系,有时只想操作一部分反而不那么方便。在码代码的过程中,需要从某个日期往前或者往后推移,手动计算又要考虑跨月份的问题。经过阅读python官方文档,找到了日期加减推移运算的方法。关键词是timedelta。一个日期可以和一个日期增量相加减。那么,推算日期、时间的功能就好实现了。 d = datetime.d原创 2017-04-22 21:41:44 · 9023 阅读 · 0 评论 -
Python获取外网ip
Python获取外网ip获取外网ip而不是局域网ip。网上有些教程但是不能用。因为有些地址已经过期用不了了。此处介绍一种用ip138来查本机外网ip的方法。直接上代码。源码import requests# 获取外网IPdef get_out_ip(): url = r'http://1212.ip138.com/ic.asp' r = requests.get(url) t原创 2017-05-16 22:24:19 · 12810 阅读 · 0 评论 -
文件操作的那些坑事
文件操作的那些坑事直接使用底层的文件操作函数,还是会遇到一些坑事的。特别是接触底层较少或者新来的童鞋。。。一个简单的需求将一个文件的前几行保留,后面的数据写入到另一个文件。当然,此处不讨论awk、sed、shell中的方便的命令。单纯从文件操作来讨论下做法。思路,很简单:打开原始文件,读取所有内容,擦除原始文件,将前n行写入原始文件,将后续内容写入第二个文件。那么问题来了。1、以什么方式打开原始文件原创 2017-06-14 21:45:35 · 349 阅读 · 0 评论 -
利用Python在一个文件的头部插入数据
利用Python在一个文件的头部插入数据在一个文件的末尾追加数据是很常用的。在使用过程中应该都比较熟悉不会出现什么错误。但是往一个文件头部插入数据可能或多或少会碰到一些问题。看似正确的错误代码很多代码看似正确,但是其实都是错的。一起来看下这些代码1、看似正确的错误代码1with open(path, "r+") as f: f.seek(0) f.write(data)确实是从头原创 2017-06-13 20:11:17 · 21058 阅读 · 5 评论 -
Python获取当前脚本绝对路径
Python获取当前脚本绝对路径Python脚本有一个毛病,当使用相对路径时,被另一个不同目录下的py文件中导入时,会报找不到对应文件的问题。感觉是当前工作目录变成了导入py文件当前目录。解决这个问题,可以用绝对路径。当然是自动的绝对路径,而不是每次都手动给前缀赋值,让脚本自动寻找当前文件的绝对路径。此处分享在python下获取一个脚本的绝对路径的2种方式。1、__file__变量print("ab原创 2017-07-18 23:58:33 · 20686 阅读 · 2 评论 -
Python查找第n个子串小技巧
Python查找第n个子串小技巧ProblemPython中str类自带的find、index方法可以返回第一个匹配的子串的位置,但是如果实际使用中需要查找第2个甚至第n个子串的位置该怎么办呢。也许有的码友可能会用到第二第三个参数,指定查找的起始、终止位置。但是在很多情况下,接收到的一个字符串可能是未知的,强制限定起始位置可能导致代码在某些情况下不能适用。Solution采用嵌套的方法调用find或原创 2016-07-05 20:37:09 · 14504 阅读 · 0 评论