python基础
文章平均质量分 57
Rational、
尚未佩妥剑,转作眼来多韩湖。愿历尽千帆,归来仍少年。
展开
-
多线程以及python的多线程
1.1 线程和进程进程:系统分配资源最小单位,进程指正在运行的程序。确切的来说,当一个程序进入内存运行,即变成一个进程,进程是处于运行过程中的程序,并且具有一定独立功能。线程:系统调度最小单位,线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程。一个进程中是可以有多个线程的,这个应用程序也可以称之为多线程程序。简而言之:一个程序运行后至少有一个进程,一个进程中可以包含多个线程1.1.1什么是多线程呢?即就是一个程序中有多个线程在同时执行。单线程:多个任务只能依次执行。原创 2021-10-09 14:09:36 · 294 阅读 · 0 评论 -
记录一个使用imgkit库转图片在windows上可能会出现的问题 iis OSError: [WinError 6] 句柄无效
最近项目有需求需要将富文本输入框的内容转成图片给app显示,从前端拿到了html格式str,网上找到了imgkit这个库,真心十分强大,作者也很好(华裔/国人),支持将html文件 str 和url转成图片或者pdf,网上很多例子就不赘述了。我在本地和Django中跑都没有问题,但是放在iis 中就报错 OSError: [WinError 6] 句柄无效,找了一圈也没找到原因,遂去作者的github 写了issues 没想到得到了作者的回复并修复了,https://github.com/jarre原创 2021-03-18 13:33:01 · 416 阅读 · 0 评论 -
django chache 缓存
安装网上有很多教程自己只 pip 安装了 python-memcachedsetting 中增加cache配置# localhostCACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.memcached.MemcachedCache', 'LOCATION': '127.0.0.1:11211', }教程https://docs.djangoproject.com/zh-原创 2021-02-24 13:59:36 · 225 阅读 · 0 评论 -
django request.body、request.POST、request.data
request.POSTdjango中的request.POST只能取到Content-Type(请求头)为application/x-www-form-urlencoded(form表单默认格式)的数据,如果请求头为application/json(json格式),multipart/form-data(文件)等格式无法取到,只有在request.body里面能取到原生的数据。当发送过来的是JSON数据是,request.POST取到的数据是空的,这时只有用request.body取,再反序列化才能使用原创 2021-02-20 15:46:44 · 4551 阅读 · 1 评论 -
Python开启尾递归优化,解决Process finished with exit code -1073741571 (0xC00000FD)
首先,递归调用是函数调用自己本身,在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出。尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个栈帧,不会出现栈溢出的情况。但是,Python解释器没有做优化,即使把递归函数修改成尾递归的方式依然无法解决问题原创 2021-02-19 15:03:22 · 1972 阅读 · 0 评论 -
crudini命令 – 操纵ini文件
crudini 是 Pádraig Brady 用 Python 开发的、用来对配置文件(即ini文件)进行编辑的工具。crud是4个单词的首字母简写,即create、read、update和delete,中文译为“增删改查”。这个是数据的最常见的4类操作方法。有些软件的配置文件采用的是ini格式,如php.ini。这样的配置文件往往会成若干个段落。段落以[default]之类的格式标识。具体的配置条目则为“datadir=/var/lib/data”形式。语法格式: crudini [参数] [文件]转载 2020-10-13 17:33:38 · 1042 阅读 · 0 评论 -
python .so 和.py文件执行顺序
先说答案,当本地路径下同时存在.so和.py文件的情况下,优先调用的是.so环境centos7.6应用场景 Python是一种面向对象的解释型计算机程序设计语言,具有丰富和强大的库,使用其开发产品快速高效。 python的解释特性是将py编译为独有的二进制编码pyc文件,然后对pyc中的指令进行解释执行,但是pyc的反编译却非常简单,可直接反编译为源码,当需要将产品发布到外部环境的时候,源码的保护尤为重要.准备工作 环境是可为linux/centos,我Windows10本地是Bash o原创 2020-09-23 15:11:06 · 2423 阅读 · 0 评论 -
Python3 文件f.seek() 方法
seek() 方法用于移动文件读取指针到指定位置。语法:fileObject.seek(offset[, whence])参数解析:offset – 开始的偏移量,也就是代表需要移动偏移的字节数,如果是负数表示从倒数第几位开始。whence:可选,默认值为 0。给 offset 定义一个参数,表示要从哪个位置开始偏移;0 代表从文件开头开始算起,1 代表从当前位置开始算起,2 代表从文件末尾算起。返回值:成功,返回新的文件位置,失败,则函数返回 -1。例子:f = open('test原创 2020-09-05 11:16:21 · 14822 阅读 · 0 评论 -
Python argparse.ArgumentParser()
1、介绍该argparse模块使编写用户友好的命令行界面变得容易,该程序定义所需的参数,argparese可以找出并介意出这些参数,当用户提供无效参数时,该模块还会自动生成帮助和使用情况并发出错误。[官方文档]:https://docs.python.org/3/library/argparse.html2、一个简单的例子import argparseparser = argparse.ArgumentParser()parser.add_argument("integers") pars原创 2020-07-30 10:22:44 · 2200 阅读 · 0 评论 -
Python中实例对象__class__ 如何进行属性和方法调用原因分析 以及实例方法类方法静态方法的真正调用
在正式开始之前,我们先看一段代码:下面我们来分析这段代码,上图的左边是实际的代码过程,右边为执行后的结果。**Python中一切皆对象。**绝对不是一句空话,在Python的解释器里,不仅有自己定义是对象,使我们传统意义上认为一切东西都是对象,对于执行的代码、函数、以及数据类型,你都可以在Python的源代码中找到相应的类对象,因此他们也都是实例对象。在Python3中,一切对象皆有父类对象。所有对象都有继承父类对象,要么继承于 自定义的对象,要么继承自内置的父类对象即object 。因此只要是有自转载 2020-06-08 10:54:16 · 2144 阅读 · 0 评论 -
python sort 与 sorted 区别
sort 是应用在 list 上的方法,sorted 可以对所有可迭代的对象进行排序操作。list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内置函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。sort() 函数用于对原列表进行排序。list.sort( key=None, reverse=False)key – 用来进行比较的元素,指定可迭代对象中的一个元素来进行排序。reverse – 排序规则,reverse = True 降序, r转载 2020-05-18 10:32:47 · 1800 阅读 · 0 评论 -
记一次 raise ValueError("Cannot convert {0!r} to Excel".format(value)) openpyxl 中ws.append()异常
不废话直接上截图:网上搜了很多,没找到原因,猜测append中某个变量属性不对,2.6.4版本的openpyxl貌似只支持str的对象,所以每次append就把每个变量的属性打印出来,看到是某些变量属性为dict,对相关变量做一次str()即可解决。ws2.append([str(demo.item)])...原创 2020-05-12 16:38:54 · 8599 阅读 · 3 评论 -
sqlalchemy order_by降序/升序
sqlalchemy中的query默认是按id升序进行排序的,当遇到复杂情况时就需要时用order_by。下面介绍几种order_by 的几种使用方法session.query(User).order_by(User.create_time.desc()).all()from sqlalchemy import descquery.order_by(desc(Usser_ID)).all()order_by多种条件自定义排序需要根据status来排序,status的值为(1,2,3),排序的原创 2020-05-12 16:29:17 · 17174 阅读 · 0 评论 -
记录一次uuid未str直接存数据库导致的问题:AttributeError: 'UUID' object has no attribute 'translate'
base_db_opt是我们自己对sqlalchemy封装的一个方法旧代码random_file_name = uuid.uuid4()str一下就没问题了random_file_name = str(uuid.uuid4())原创 2020-05-11 10:26:28 · 2908 阅读 · 0 评论 -
apscheduler 在flask restfull上的坑
当我们运行代码的时候发现,我们所有的定时和周期任务只要在同一个时间执行就会执行n*n次,比如我们在设置3个下午五点执行的任务,到下午五点时候会发现每个任务都执行了3次 一共执行了9次,定时也是如此。一开始找了资料,关闭了flask的debug模式,改了max_instances,依然没用,查阅了官方文档,在每一个任务上加了锁,保证每一个任务不会同步执行,强行异步执行。还是不行,后来发现,flas...原创 2020-04-28 17:34:38 · 1272 阅读 · 0 评论 -
python 装饰器实现输出每一行代码执行时间
首先安装line_profiler和wrapt包pip install line_profilerpip install wrapt装饰器:import wraptfrom line_profiler import LineProfilerlp = LineProfiler() def lp_wrapper(): @wrapt.decorator def wra...原创 2020-04-07 17:21:20 · 1834 阅读 · 0 评论 -
python 使用filetype查看文件类型
使用filetype 传入文件或者路径,源码里是这样写的def guess(obj): """ Infers the type of the given input. Function is overloaded to accept multiple types in input and peform the needed type inference base...原创 2019-10-25 14:20:48 · 3562 阅读 · 0 评论 -
python文件运行时报错:ModuleNotFoundError: No module named 'name'
1.如果导入的模块和主程序在同个目录下,直接import就行了2.如果导入的模块是在主程序所在目录的子目录下,可以在子目录中增加一个空白的__init__.py文件,该文件使得python解释器将子目录整个也当成一个模块,然后直接通过“import 子目录.模块”导入即可。3.如果导入的模块是在主程序所在目录的父目录下,则要通过修改path来解决,有两种方法:(1)通过”import sys,sys.path.append('父目录的路径')“来改变,这种方法属于一次性的,只对当前的python原创 2019-10-10 14:41:54 · 32327 阅读 · 3 评论 -
flask_session中配置项SESSION_PERMANENT 时候会自动刷新过期时间
首先附上官网地址:https://pythonhosted.org/Flask-Session/具体的可以详细查看官网文档,产生这个问题的原因是,前端同事问为什么登陆过期,登陆之后cookie不是请求后刷新过期时间的吗?然后我们看看官网文档:SESSION_PERMANENTWhether use permanent session or not, default t...原创 2019-10-08 11:47:03 · 2910 阅读 · 0 评论 -
python csv的简单使用
Python 提供了 csv 模块来读写 csv 文件。由于 csv 文件的格式本身比较简单(通常第一行是表头,用于说明每列数据的含义,接下来每行代表一行数据),因此使用 csv 模块读取 csv 文件也非常简单:创建 csv 模块的读取器。循环调用 csv 读取器的 next() 方法逐行读取 csv 文件内容即可。next() 方法返回一个 list 列表代表一行数据,list 列表的每个...原创 2019-06-28 12:07:59 · 1182 阅读 · 0 评论 -
python 多个装饰器的执行顺序
前提,装饰器的执行顺序是自下而上,采用的是就近原则两个例子带你理解#! /usr/bin/env python2.7# encoding=utf8from functools import wrapsdef catch_exception(func): @wraps(func) def function(*args, **kwargs): # 捕捉任务异...原创 2019-05-12 22:35:55 · 1132 阅读 · 0 评论