Python
文章平均质量分 59
卡西莫多的礼物
享受孤独
展开
-
使用python3查收与发送邮件
文章目录使用python3查收与发送邮件基本配置及模块导入接收邮件发送邮件使用python3查收与发送邮件邮件的接收和发送是日常工作必备的内容,前一段时间我需要进行工作交接,从上万分邮件中找到和某些关键词相关的邮件,并以附件的形式发送给不同的人,一共有600多个这样的关键词,如果要手动执行,我需要手动执行600多次,这简直让人无法接收。因此为了自动化该过程,我学习了python3如何接收和发送邮件的过程,并试着完成该项目交接。中间遇到了各种各样的问题,由于同时我还要处理新的工作,只能利用业余时间来一一解原创 2020-10-21 16:12:00 · 564 阅读 · 1 评论 -
用装饰器来检查deque与list在插入元素与弹出元素方面的效能优势
在python的collections模块中有一个deque的数据结构,它与list类似,具有append()和pop()方法,除此以外,还添加了leftappend()和leftpop()的方法,其运行模型与队列和栈类似,它的好处在与面对大数据量的时候,插入和取出的速度要更快,为了比较直观的感受这种差别,我写了一个简单的装饰器来检查它们在这两方面的差别,装饰器如下def time_coun...原创 2019-05-01 16:42:38 · 165 阅读 · 0 评论 -
python re模块使用技巧总结
这里写自定义目录标题python re模块使用技巧总结python re模块使用技巧总结import re#使用(?P<name>...) 或者 (?P=name)来标记变量,使用\g<name>的方式来检索test = '110-120'result = re.sub(r'1(?P<rest>[0-9]+)','A\g<rest>',...原创 2019-05-16 21:34:02 · 499 阅读 · 0 评论 -
python re模块的一些特殊符号的含义
正向前视断言(?=...)的用法import re#(?=.com)只有在后面是.com的时候才做匹配,以下代码仅返回第二行的cmprint(re.findall(r'(?m)(cm)(?=.com)','''cmcm.comcmcm'''))sub和subn的区别,subn返回一个元组,包含替换的次数>>> re.sub('X', '...原创 2019-05-16 22:14:49 · 3957 阅读 · 0 评论 -
多个模块的log日志输出
今天研究了一下python标准库中的logging模块,在多个模块的情景下输出日志import loggingfrom logging_test2 import log_test# logging.basicConfig(filename='log_example.log',# level=logging.DEBUG,# ...原创 2019-05-26 20:20:36 · 1389 阅读 · 0 评论 -
解决python2与python3的一些函数命名的差异
一种较为简单的方式是在代码开头申明,申明如下:try: raw_inputexcept NameError: raw_input = input以及如下的方法try: with open('diseases.db.json','r',encoding='utf-8') as indata: #python3 all_diseases =...原创 2019-05-23 15:03:50 · 190 阅读 · 0 评论 -
python获取的环境变量与字符串使用==比较失败
今天在使用howdoi包时,由于不能使用google进行查询,需要设置环境变量HOWDOI_SEARCH_ENGINE来指定使用bing来进行搜索,结果在windows下设置了SET HOWDOI_SEARCH_ENGINE='bing'之后,怎么都不能连接成功,通过==来检查,发现怎么都不相等,后来以为有空白符号,但是添加了strip()之后还时不能相当,通过一番折腾之后,使用repr打印,最终...原创 2019-06-09 19:33:21 · 405 阅读 · 0 评论 -
python re模块中 (?P<name>) (?P=name) 及 \g<name> 三者的使用区别
测试代码一:astr1 = 'AAbb aabb'astr2 = 'aabb aabb'astr3 = 'aabb ccbb'for s in astr1,astr2,astr3: result = re.match(r'(?i)(?P<pattern>[\w]+) (?P=pattern)',s) if result != None: p...原创 2019-07-08 13:30:33 · 20604 阅读 · 1 评论 -
python openpyxl的styles相关用法
文章目录博客内容行宽行高自动换行 及字符串对齐字体及颜色设置设置单元格格式设置边框注意事项博客内容openpyxl模块中与字体,颜色,背景,边框,字体,行宽,行高,单元格格式等相关的内容都放在了styles模块中,接下来我们来逐个了解行宽行高先来看一个修改行宽行高的例子import openpyxlbook = openpyxl.Workbook()sheet1 = book.a...原创 2019-07-08 15:47:15 · 9435 阅读 · 0 评论 -
django CSRF verification failed. Request aborted错误的解决
今天在用django搭建用户认证系统的时候遇到一个错误,CSRF verification failed. Request aborted 但是我确实添加了 {% csrf token %},通过一番折腾,终于找到了问题所在,原来是<form>标签中的enctype的设置出了问题,enctype的可选值如下:我在设置为text/plain之后,就会报这个错误,默认不添加或者m...原创 2019-07-14 22:52:42 · 432 阅读 · 0 评论 -
python魔法方法的一篇总结
转自:https://blog.csdn.net/jf_xu/article/details/82502837写的非常好的一篇python魔法方法的总结,非常的全面,从中学习到好多,受教了!原文: http://www.rafekettler.com/magicmethods.html 原作者: Rafe Kettler 翻译: hit9 原版(英文版)...转载 2019-07-11 12:04:14 · 176 阅读 · 0 评论 -
python 中类继承的super()方法
参考https://www.runoob.com/python/python-func-super.htmlpython中的super()方法主要用于子类引用父类方法,因为这样做可以提高代码的复用性#!/usr/bin/env python# -*- coding=utf-8 -*-#用于测试类继承的super()方法class A(object): """ 父...原创 2019-07-11 17:37:24 · 1239 阅读 · 0 评论 -
django的一些用法的积累与总结
文章目录前言发送邮件设置保存用户密码自定义form表单验证模板中有多个参数的url写法激活码的生成前言最近又要用到django去搭建网站,之前用的东西需要花一些时间去恢复记忆,同时还需要学习一些新的知识,进一步提升自己使用django的能力,因此写这篇博客持续更新使用过程中积累的一些技巧,知识和用法等。目前我自己写了一个认证系统,包括登入登出,注册激活,密码找回等功能,放在了github仓库...原创 2019-07-16 22:30:55 · 158 阅读 · 0 评论 -
python collections的常用工具
python collections是非常常用的一个模块,里面的一些工具可以帮助我们减少代码,并提高运行速度,如下列出:第一个是计数用的Counter类,运行起来与collections.defaultdict(int)类似#计数器,行为类似字典c = collections.Counter()for i in 'programming': c[i] += 1print...原创 2019-05-01 16:08:41 · 100 阅读 · 0 评论 -
如何巧妙格式化日期
# 本月文件和上个月文件 year = datetime.datetime.now().year month = datetime.datetime.now().month now_month_file = '{}.{:0>2}'.format(year, month) last_month_file = '{}.{:...原创 2019-05-06 11:46:18 · 184 阅读 · 0 评论 -
Django中各种Model Relationships相互引用的方法
在Django中创建模型,模型之间可以建立不同的联系,one-to-one relationship,one-to-many relationship,many-to-many relationship,在实际的项目中,往往需要根据一个模型和关系来引用另一个模型对象,接下来我们来看一下这几种关系中,如何相互提取与之想关联的模型class EntryDetail(models.Model):...原创 2018-10-07 22:38:11 · 1794 阅读 · 0 评论 -
python 多行排序,根据染色体号,位置信息排序,升序降序排序
遇到一个问题是需要将文件按照染色体编号和位置编号进行排序,在shell中我们可以使用sort -V -k2,3 annovar.xls这种方式来进行排序,而在python中如果想要进行多行排序,就需要sort的key参数指定的函数返回一个元组或者列表来进行排序。现在我们有一个染色体位置文件如下:如果想要对上述的文件进行排序,那么key函数就可以像下面这样写:def chrome_...原创 2018-11-13 11:37:42 · 1868 阅读 · 0 评论 -
django迁移未检测到更新的错误的解决方案
有时候你删除了django项目中app文件的migrations文件之后,想要重新进行迁移,这时候你输入python manage.py makemigrations appname,发现没有问题,然后你运行python manage.py migrate结果发现没有检测到迁移改变,你就会很纳闷,为什么我命名迁移了文件,在将迁移文件应用到数据库的时候却没有检测到迁移呢?这里就需要我们了解一下dja...原创 2018-11-13 18:13:52 · 1330 阅读 · 0 评论 -
使用argparse实现像samtools一样的子命令,子程序并形成各自的帮助文档
文章目录简介使用add_subparsers()来创建子文档使用set_default()来管理各自功能的参数简介很多时候,我们的程序往往需要实现多个功能块,将这些功能块分开实现是一个好主意,而argparse可以帮助我们来实现易读的自命令和帮助文档。本文将介绍如何使用argparse来对具有多个功能的程序进行功能划分并写出各自子程序的帮助文档。参考文档为argparsehttps://do...原创 2018-12-04 18:10:51 · 766 阅读 · 0 评论 -
python用于写配置文件的configparser包简介
在写程序或者脚本的时候,常常要面临的一个问题就是配置文件的灵活性,如果一个程序中写满了绝对路径,那么这个程序在移植的时候将是非常头疼的。一个好的解决办法就是将这些程序运行所需要的配置文件以及一些设置放置到一个单独的配置文件中进行集中的管理,这样在程序移植到其他的地方的时候,我们只需要修改配置文件就可以解决移植性的问题了!python中的一个常用包configparser就是为此而生,该包既可以...原创 2018-11-30 19:16:20 · 427 阅读 · 0 评论 -
使用argparse来实现接收标准输入并默认输出到标准输出功能
文章目录简介使用 nargs使用nargs='?'简介有很多命令,例如awk,sed,cut等这些命令,都是可以接收来自管道符的标准输入,并且默认输出到标准输出。这些命令在找不到输入的文件的时候,就会去标准输入去找,这个功能非常的方便,现在我们使用argparse也可以实现这个功能。使用 nargsnargs是add_argument()方法的一个参数,该参数的特别之处在于指定参数后面值的...原创 2018-12-05 15:32:28 · 657 阅读 · 0 评论 -
快速将argparse的参数倒入到类中的__dict__
话说好久没有写博客了,是时候写起来了!argparse的参数在使用parse_args()后保存在了Namespace()中了,我们可以通过vars()来将其中的属性以键值对的字典形式返回如下所示:import argparseargs = argparse.Namespace()args.arg1 = 1args.arg2 = ['d']args.arg3 = {'e':...原创 2019-01-10 16:49:00 · 2542 阅读 · 0 评论 -
Python 字符串格式化方法比较
第一种方法是使用%s %f等字符进行print('My name is %s, My age is %f' % ('cm',27))My name is cm, My age is 27第二种方法是使用string的format进行print('My name is {name}, My age is {age}'.format(name='cm',age=27))My nam...原创 2019-03-06 14:52:13 · 94 阅读 · 0 评论 -
python logging模块学习
logging模块可以更好的去记录程序中的一些信息,尤其是一些错误信息,因此很有必要学习一下。基础用法import logginglogging.basicConfig(filename='example.log',level=logging.DEBUG,filemode='w', formatter='%(asctime)s:%(name)s:%(levelname)s:%...原创 2019-03-06 18:09:44 · 87 阅读 · 0 评论 -
argparse一些常用参数的记录
虽然我使用这个包已经很久了,但是常常遇到的情况是,写的时候总是有一些参数反应不过来,需要去查看文档,这样常用的包,如果每次用都要去查看一遍,真的非常低效,对此一劳永逸的办法就是花点时间背下来!argparse.ArgumentParser()对象的可选参数罗列如下:ArgumentParser()的参数 prog 程序的名称,默认为sys.argv[0],后面可以使用%(p...原创 2019-03-18 15:04:46 · 593 阅读 · 0 评论 -
使用openpyxl输出excel文件
文章目录使用openpyxl创建并输出excel文件设置单元格的style使用openpyxl创建并输出excel文件使用openpyxl来输出excel文件的优势是可以像输出普通文本那样一行一行的进行添加具体的使用方法如下from openpyxl import Workbookbook = Workbook()sheet1 = book.activesheet1['A1'] = ...原创 2019-04-15 18:17:38 · 3659 阅读 · 0 评论 -
python的集合操作
集合常用于去重和求交集和并集,实例代码如下:#集合操作pro_set = set()for i in 'programming': pro_set.add(i)print(pro_set)py_set = set()for i in 'python': py_set.add(i)print(py_set)#并集uni_set = pro_set | ...原创 2019-05-01 22:50:28 · 154 阅读 · 0 评论 -
借random模块聊一下生成器的好处
下面的例子是一个生成指定书目的随机数的函数,这个函数的返回值是一个可迭代的对象,也就是生成器,在使用生成器的过程中,我感受到了两个生成器带来的好处,第一个是生成器返回一个可迭代对象,每一次迭代产生一个值,然后去处理这个值,这样在处理大数据的时候可以很好的节省内存,另一方面,使用生成器可以让代码更加简洁易懂,如果我们的函数要返回一个列表,那么我们需要事先先定义一个空的list,然后通过循环逐个加入到...原创 2019-05-01 23:13:18 · 114 阅读 · 0 评论 -
使用openpyxl读取数据
参考一篇写的比较好的博客:https://www.cnblogs.com/sun-haiyu/p/7096423.html为了读取数据,我们首先先写一个excel,写的时候,每一行添加随机数10个,从0~9,并且使用红色加粗标记大于5的数字,实现代码如下import randomfrom openpyxl import Workbook,load_workbookfrom openp...原创 2019-05-02 01:27:02 · 4852 阅读 · 0 评论 -
web开发 django的表单处理详解
这一段时间想要利用django来搭建web应用的后台逻辑,完成面向工作部门的web应用,该应用中需要使用文件上传功能,通过对官方文档的学习,我将如何完成文件上传的功能学习成果分享给需要的伙伴们。首先要理解django的表单提交过程django对于表单提交的模块是django.form,而form有两种,一种是form.Form,一种是form.ModelForm,它们的区别是是否需要和...原创 2018-10-04 23:31:09 · 521 阅读 · 0 评论