python
zhiranyouni
这个作者很懒,什么都没留下…
展开
-
为什么要做系统运行日志
今天运营说有一个需要生成邮件的地方,没有生成邮件。因此需要查一下原因,并解决。在查看代码的过程中,发现找不到可以查看运行日志的地方。没有打印。没有专门的文件记录。发现代码只是运行了逻辑,操作了数据库,而功能是嵌入到系统中的,系统运行日志浩如烟海,杂乱无章,是不能找到相关的记录的,而且系统log是信息流,也没有进行存储,因此也是找不到的。比较尴尬的是,这个功能是我写的,而我之前并没...原创 2019-12-09 18:58:04 · 2464 阅读 · 0 评论 -
django_websocket实践和一些相关知识
工作上需要制作一个实时大屏,需要使用websocket实时传递信息。但是之前对websockety一直不熟悉。主要使用的是channels,参考官方教程写的代码。教程已经写的很全了。解释很好.所以需要新建python环境,新建git,安装包等等。更换源由于使用官方源下载channels很慢,所以需要指定pip的源:打开新建的文件夹,在里面建一个名为: pip.ini的文件,并在文件中输...原创 2019-12-09 17:59:02 · 141 阅读 · 0 评论 -
Python处理大文件,大数据
使用Python读取大文件的方法其实就是采用化整为零的思想,既然大数据那么多,那么我们就一点一点的来处理。还有Python多进程分块读取超大文件的方法一个人不行,那么我就多个人去做么,众人拾柴火焰高。...原创 2019-12-04 18:02:55 · 1132 阅读 · 0 评论 -
关于Python的字典
我们知道Python的字典,一般做映射取值。我们也知道Python是散列数据结构。所以有python读取大文件越来越慢的原因与解决里面提到使用 in dict.keys 比 in dict 要慢很多,为什么呢?应该就是 in dict 还是使用散列查找,很容易,可以直接地址查询。而 in dict.keys,就相当于在元组和列表的判断,这是链表结构,查询起来自然就慢了。因此在后续的...原创 2019-12-04 17:56:28 · 110 阅读 · 0 评论 -
再次理解多线程,多进程
工作以来,基本上没有遇到使用多线程和多进程的任务或者工作。–也有可能是,有的工作可以使用多线程和多进程,只是自己想不到使用。例如报表分批实现,文件分批读取,保存等等。昨天突然被问到多线程和多进程的相关问题,自己很是抓瞎。竟然全忘记了。说不出个所以然。真不对。又看了看廖雪峰的文章进程和线程一篇文章读懂 Python 多线程又想了想自己之前看的文章和理解,渐渐找回了感觉和理解。真正的...原创 2019-12-04 17:47:28 · 268 阅读 · 0 评论 -
使用策略模式代替嵌套的多层if-else
–后台在开发的过程中,需要进行各种逻辑判断,来判断某个按钮是否展示,某个操作是否允许。所以嵌套了很多if-else判断,看起来很是头痛。修改了起来也要各方面考虑,防止逻辑错误,进行影响。如图:之前一直不知道会有怎样的处理方式更好。先简介一下,这戏需要进行的逻辑判断:判断当前用户是否有权限判断用户状态,判断时间等其他判断此条信息状态是否允许这个操作此条信息其他信...原创 2019-11-29 17:57:19 · 1375 阅读 · 2 评论 -
通过Code Review来进步
之前很多不懂的时候,有时候通过看同事之前写的代码,结合公司的业务逻辑,来进行技术的学习。后来,工作比较忙,很多东西也会了,看同时的代码相对来说,少了很多。当然,通过看python包的源码,更能学习很多东西。今天又再次看了看同事们提交的代码,进行温故学习,以及思考。同事写了一个调用翻译的接口。 汉译英好久不对接接口了。开始对接接口,还是公司上业务需求,需要对接支付公司,进行数据传递。...原创 2019-11-29 17:10:14 · 102 阅读 · 0 评论 -
关于python项目环境的理解
之前以为自己已经理解的各种环境,但是好像并不是,没有深刻理解开始学习编程的时候,各种环境配置完全不知道是什么东西,更不知道是干嘛用的,只是按着教程来操作。做完之后,可以还行,如果不行,便会抓瞎了。不知道改哪里,不知道哪里出现了问题。很是疑惑和难受。后来慢慢知道PATH, host,setting, env, class jar包的作用。但是今天要单独执行一个项目的中的一个文件的时候,...原创 2019-11-21 18:48:05 · 490 阅读 · 0 评论 -
python循环的一个优化,原来方法可以再次封装调用,类似匿名函数
循环优化每种编程语言都会强调需要优化循环。当使用Python的时候,你可以依靠大量的技巧使得循环运行得更快。然而,开发者经常漏掉的一个方法是:避免在一个循环中使用点操作。例如,考虑下面的代码:每一次你调用方法str.upper,Python都会求该方法的值。然而,如果你用一个变量代替求得的值,值就变成了已知的,Python就可以更快地执行任务。优化循环的关键,是要减少Python在循环内部执...原创 2019-11-21 16:55:48 · 544 阅读 · 0 评论 -
python执行太慢??
python执行太慢??两个优化的方式: pypy和numba在公司处理数据的时候,有时候感觉python执行太慢,有的时候是保存,例如:使用openpyxl保存几的文件的时候,需要保存好长时间。如果使用pypy,换一个python的解释器来做,不用动态编译,只是替换需要的变量,使用空间换取时间,能够大大提升效率。具体使用,就查看他们的文档吧。...原创 2019-11-01 15:42:36 · 194 阅读 · 0 评论 -
简单方便,分步实现。linux 各司其职,做好本职工作。不交叉,相互独立,不耦合
后台需要开发一个功能,需要根据订单号导出相关的订单信息,可以选择需要导出的订单信息之前的逻辑是单独的,只有根据订单号导出信息,后来需要增加一项功能,可以根据订单中其他信息来导出订单的其他信息,例如订单的一个叫做批次号的东西。开始实现的逻辑是各种判断,判断传来的是订单号还是批次号,然后以此为基础,在数据库中寻找相应数据。结果写着写着,感觉太复杂,各种判断,各种情形。因为一个批次号可能会对应多个订...原创 2019-09-25 12:33:27 · 252 阅读 · 0 评论 -
django orm 过滤器的理解
关于filter and exclude业务上数据比较多,查询比较多,所以经常使用sql进行数据的查询,因此对于sql比较熟悉,但是对django的orm了解的就不是很深了。结果出来的数据不满足需求,本来想排除指定订单,但是没有排除掉。经过看query_set的sql的语句(里面有属性query,可以打断点去看),原来exclude将里面的排除条件叠加了,即只有同时满足里面的数据才会被排除...原创 2019-08-29 16:42:03 · 502 阅读 · 0 评论 -
python的for循环耗时太长引发思考
big_list = list('big data')for one in all_data: time_a = time.time() if one not in set(big_list) : print('the time is', time.time()-time_a)结果发现每个if判断的时间为0.03s, 如果for循环数据很大的话,将很浪费时间,100...原创 2019-05-07 17:58:11 · 19588 阅读 · 1 评论 -
总结几个注意事项
python**whilepython使用while循环的时候,一定要注意退出条件, 否则会陷入死循环的今天在导数据的时候,没有写好while的循环退出条件,结果调试半天如下: 里面的 i+=1, 写在了if条件之内,结果第一个order_id为空,结果死了,浪费了半小时wb = openpyxl.load_workbook('zip_xlsx/'+fname)sheet ...原创 2019-01-17 11:36:20 · 154 阅读 · 0 评论 -
将xlsx转换为xls格式
所在公司的业务中,不可避免的会数据的导入和导出,一般均是导出数据到Excel中,但是导出的数据有时候还会上传到第三方的系统中,进行数据的交换。 但是后台系统现在一般是使用openpyxl进行数据的导出excel的操作,而openpyxl只支持xlsx的格式,对于xls格式的数据,既不能读,也不能写。 虽然还有别的库, xlrd, xlwt, xlutils, 但是习惯使用openpyxl了,而且...原创 2019-01-18 17:17:24 · 7743 阅读 · 0 评论 -
python创建压缩文件
业务中需要将阿里云上存储一些图片通过浏览器进行下载,很多图片要分类并创建文件夹,然后传到本地实现是: 先将图片下载到服务器上,然后通过python对图片的文件夹,进行打包和压缩,然后将压缩文件放到内存中,然后进行http传输, 这个实现比较不好,http传输会慢, 将压缩文件放到内存中也会占用大量内存, 也不好,等startdir = file_name # 要压缩的文件夹路径# ...原创 2019-01-22 11:24:56 · 795 阅读 · 0 评论 -
记录一点儿学习足迹
深入学习理解一点儿pythonPython中的staticmethod与classmethodclass Date(object): day = 0 month = 0 year = 0 def __init__(self, day=0, month=0, year=0): self.day = day self.m...原创 2019-01-16 21:19:34 · 315 阅读 · 1 评论 -
shell脚本或者python的执行环境问题
业务上需要写一些定时任务的脚本,定期的去更新数据,或者爬去数据(例如汇率)。写了一下python脚本,放到shell中的.sh文件中,然后crontab -e 定时去执行,然后后期发现定时脚本执行的时候,有时会报错,但是自己手动执行.sh却可以执行,慢慢研究发现,原来是不同bash(shell壳)的问题, 还有的是python的环境变量配置的问题,因此会用到source /etc/profi...原创 2019-01-23 15:03:17 · 987 阅读 · 0 评论 -
mysql中between--and的范围问题
在手写sql的时候,有时候对于时间范围,会经常使用between–and,当时有时候会被它坑,只能说没有理解清楚between–and的逻辑及范围判断,以及对于python中datetime构造时间的理解有误。start_time = datetime(2019, 1, 1)end_time = datetime(2019, 1, 31)condition = { 'start_...原创 2019-02-11 17:05:14 · 2317 阅读 · 0 评论 -
python 一行代码打印9*9乘法表
研究一下python技巧, 同事说你写一行代码打印9*9乘法表吧1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7...原创 2019-02-12 16:31:18 · 1631 阅读 · 0 评论 -
一些注意事项,反思和总结
首先要控制自己脾气和态度在使用一些新的功能,命令或者技术时,需要先把新的东西使用熟悉,搞清楚,比如Mysql的in的命令,如果是in (0)它会查询全部的数据的,不会是没有数据,如果字段是字符串。在使用git时,慎重一些,注意分清线上,本地还是测试,不要进行了误操作,导致出现问题,比如今天差点将线上的分支进行了处理(操作时误以为是本地)。同样的数据在进行匹配,计算和导出时,要保持条件相同...原创 2019-04-08 12:22:07 · 252 阅读 · 0 评论 -
使用with语句替换 try finally语句
使用with语句替换 节省资源, 灵活度高主要使用__inter__和__exit__方法# -*- coding: utf-8 -*-import jsonclass A(object): def __init__(self, exception_type=None): self.exception_type = exception_type d...原创 2019-04-22 10:35:54 · 411 阅读 · 0 评论 -
关于使用数据导出为excel的时间问题
在公司的业务操作上,很多时候需要查看后台数据,而查看后台数据经常使用excel进行导出,以及进行后续的操作,有时候数据量很大,导致导出数据很慢,因此进行了一些原因查找,一次判断时间消耗在了那里。如图可知,文件大小约5M,执行时间将近44s。以下是执行结果分析发现时间大头还是消耗在数据写入openpyxl的workbook中的时间以及将数据保存的内存中。具体怎么解决,暂时还不知...原创 2019-04-22 17:16:48 · 1007 阅读 · 0 评论 -
记录python开发的一些技巧
一,python的默认字典在一些for循环中,有时需要将for循环出来的数据放到一个字典中,使用其中的一个指作为key。直接看代码吧:// python的默认字典region_dict = dict()# query_result是sql查询出来的数据,为元组内套字典。for item_region_info in query_result: region_dict.setdef...原创 2019-01-04 19:28:36 · 201 阅读 · 0 评论