![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python基础
BigMasterSun
贵有恒,何必三更眠五更起!最无益,只怕一日曝十日寒~
展开
-
python读写excel文件
# coding: utf-8import osimport xlwtimport xlrdclass ExcelProcess(): def __init__(self, file_path, file_name): self.file_path = file_path self.file_name = file_name self.file = os.path.join(self.file_path, self.file_name).原创 2022-05-11 16:37:23 · 635 阅读 · 0 评论 -
python执行js代码进行aes加解密以及python代码与前端交互加解密
在前后端交互的过程中,基于安全考虑,往往需要对某些数据进行加密传输,我们以传输密码为例:如果密码明文传输的话,有被截取的风险,因此我们可以考虑采取rsa加密或者aes加密的方式,本文采用aes加密的方法进行传输。aes加解密,前后端要商定好一致的密钥一、python调用js代码加解密前端js代码如下:const CryptoJS = require('crypto-js'); //引用AES源码jsconst key = CryptoJS.enc.Utf8.parse("eeeeee原创 2022-02-23 10:22:41 · 3615 阅读 · 2 评论 -
django,flask上传文件,接收文件流
def index(request): if request.method == 'POST': file_obj = request.FILES.get('my_file') print(file_obj.name) with open(file_obj.name,'wb') as f: for line in file_obj.chunks(): # 这里.chunks()可加可不加,反正for循环也是一行一读.原创 2022-02-10 10:11:18 · 896 阅读 · 0 评论 -
从edgedb的源码学习如何简化大量if...elif...else
我们有一个变量s_fruit,需要根据其值来判断执行哪个逻辑,常规的写法就是if..elif...else的多重if语句,好一点就是把每个if给他提出去。s_fruit = 'qqq'if s_fruit == 'apple': print("I love apples!")elif s_fruit in ['eggplant', 'squash']: print(f"I didn't know {s_fruit} is a fruit!")else: print(f"I原创 2021-12-15 17:16:51 · 332 阅读 · 2 评论 -
关于python开发os创建目录更改用户和用户组以及subprocess.Popen产生僵尸进程,指定普通用户调用vlc程序
一、subprocess.Popen()产生僵尸进程在程序开发中,我们经常会用到Popen()去调用一些shell命令,只有在程序运行结束的时候才会回收资源,但是我们的程序是一直在运行的,这就会产生很多的僵尸进程,浪费服务器资源。解决方法很简单,就是指定在新进程中执行,并且不要继承父进程,让其最终被托管进程回收Popen( args="while true; do rtpplay -T -f '{}' /8000; done".format(rtp), st原创 2020-10-13 19:06:52 · 807 阅读 · 1 评论 -
python APScheduler定时任务模块
APScheduler是一个 Python 定时任务框架,提供了基于日期、固定时间间隔以及 crontab 类型的任务,并且可以持久化任务、并以 daemon 方式运行应用。安装:$ pip install apschedulerAPScheduler 四个组件分别为:触发器(trigger),作业存储(job store),执行器(executor),调度器(scheduler)。触发器(trigger):包含调度逻辑,每一个作业有它自己的触发器,用于决定接下来哪一个作业会运行。原创 2020-08-21 17:40:31 · 628 阅读 · 0 评论 -
原生sql及sqlalchemy指定使用某个索引
有时候表查询时,里面不止一个索引,命中的索引不一定是最优的,因此我们需要指定索引。一、原生sql-- 例如查询订单select * from order where price>20 and create_time>current_date order by id desc;-- 查询的时候发现特别慢,利用describe查看我们的sql语句,发现使用不同的索引,他的速度也不同。-- 指定索引用force index()select * from order force i原创 2020-08-07 10:01:43 · 808 阅读 · 0 评论 -
python通过ssl加密连接mysql
目录1、django程序的配置2、pymysql连接数据库3、DBUtils数据库连接池连接配置我们在连接某些数据库时,需要提供ssl证书,如果是IT的数据库,那么可能会提供下载。如果是自己想做,可参考如下步骤:https://dev.mysql.com/doc/refman/5.7/en/creating-ssl-rsa-files-using-mysql.html...原创 2020-03-17 21:23:50 · 3503 阅读 · 0 评论 -
centos7.6安装python3.6.8
mkdir /usr/local/python3cd /usr/local/python3# 从官方拉取python包wget https://www.python.org/ftp/python/3.6.8/Python-3.6.8.tar.xz# 解压tar -xvf Python-3.6.8.tar.xzcd Python-3.6.8/# 安装gcc编译器yum -y ins...原创 2020-01-16 10:34:14 · 274 阅读 · 0 评论 -
python并发编程之多进程
目录中断的定义:多道技术(针对单核cpu):进程理论:一、开启进程的两种方式二、进程对象中的其他方法三、守护进程四、互斥锁五、僵尸进程与孤儿进程六、队列6.1、队列的常用方法6.2、队列的三种:七、生产者与消费者模型利用队列实现:接下来用队列JoinableQueue实现:并发:看上去像同时进行的并行:同时运行单核的计算机不可能实现并...原创 2019-05-06 16:24:32 · 301 阅读 · 0 评论 -
python之socket编程
一、socket简介Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。所以,我们无需深入理解tcp/udp协议,socket已经为我们封装好了,我们只需要遵循socket的规定去编程,写...原创 2019-04-30 18:52:52 · 324 阅读 · 0 评论 -
python并发编程之协程,线程/进程池,IO模型,同步异步,阻塞非阻塞
一、基于多线程实现并发通信服务端:import socketfrom threading import Threaddef communicate(conn, addr): # 通信循环 while True: try: data = conn.recv(1024) if len(data) == 0:...原创 2019-05-09 16:43:34 · 532 阅读 · 0 评论 -
python并发编程之多线程
目录一、开启线程的两种方式练习:二、线程之间数据共享三、线程对象的其他属性和方法四、守护线程五、线程互斥锁六、GIL全局解释器锁七、死锁与递归锁八、信号量九、event事件十、定时器十一、线程queue进程只是用来把资源集中到一起(进程只是一个资源单位,或者说资源集合),而线程才是cpu上的执行单位。线程是操作系统能进行运算调度的最小单位,是...原创 2019-05-07 16:14:26 · 253 阅读 · 0 评论 -
面向对象之类的内置方法
一、isinstance(obj,cls)和issubclass(sub,super)isinstance(obj,cls)检查是否obj是否是类 cls 的对象class Foo(object): pass obj = Foo() isinstance(obj, Foo)issubclass(sub, super)检查sub类是否是 super 类的派生类c...原创 2019-05-21 09:22:53 · 160 阅读 · 0 评论 -
pymysql模块操作数据库、(数据库连接池,手撸简单orm)
pip3.6 install pymysql一、链接、执行sql查询,关闭(游标),import pymysql# 链接conn = pymysql.connect( host='localhost', user='root', password='123456', database='day42', charset='utf8')# 游...原创 2019-05-16 19:41:06 · 926 阅读 · 0 评论 -
python虚拟环境的使用(linux/windows),pip安装源
虚拟环境就是可以给不同的项目配置不同的python解释器。我们的项目使用了不同的解释器,但是服务器上的环境只有一个版本,那么就需要虚拟环境来解决。优点:1、使不同应用开发环境相互独立 2、环境升级不影响其他应用,也不会影响全局的python环境 3、防止出现包管理混乱及包版本冲突一、windows下:pycharm进入设置,然后根据下图操作cmd命令行...原创 2019-07-19 19:06:08 · 1182 阅读 · 0 评论 -
itsdangerous加密解密库
安装pip3 install itsdangerous给字符串添加签名# 发送方和接收方拥有相同的密钥--"secret-key",发送方使用密钥对发送内容进行签名,接收方使用相同的密钥对接收到的内容进行验证,看是否是发送方发送的内容from itsdangerous import Signers = Signer('sdjksafuewbfivwbekwIR!@#') # 参数传自...原创 2019-08-13 20:15:14 · 675 阅读 · 0 评论 -
python之三元运算符、匿名函数、列表推导式、内置函数、递归
一、三元运算符本质是if……else……的语法糖前提:简化if……else……的结构,且两个分支有且只有一条语句案例:a = 20b = 30res = a if a > b else b # 求最大值print(res)res = a if a < b else b # 求最小值print(res)三元运算符的结果不一定要与条件有直接性关系res...原创 2019-04-06 11:04:18 · 332 阅读 · 0 评论 -
python之元类、单例模式
目录一、补充:面向对象的静态方法二、eval与exec内置函数三、元类3.1、什么事元类?3.2、不依赖class创建一个自定义类3.3、自定义元类中的一些方法四、单例模式的实现4.1、模块导入实现4.2、约定用类方法来获取4.3、重写__new__方法实现4.4、装饰器完成4.5、自定义元类实现一、补充:面向对象的静态方法功能体中永远...原创 2019-04-26 21:20:23 · 280 阅读 · 0 评论 -
python之基本数据类型及运算符
目录为何数据要区分类型?一、数字类型1、整型int2、浮点型float二、字符串str三、列表类型list四、字典类型五、布尔类型运算符的介绍一、算术运算符二、比较运算符三、赋值运算符四、逻辑运算符五、身份运算符用户交互一、接收用户输入二、格式化输出三、python3和python2中用户输入的区别小练习:为何数据要...原创 2019-03-20 19:30:53 · 163 阅读 · 0 评论 -
python之流程控制
一、if判断1、语法一:if 条件: 子代码块示例代码:sex = 'female'age = 18is_beautiful = Trueif sex == 'female' and age >16 and age < 20 and is_beautiful: print("开始表白。。") 2、语法二:if 条件: #条件...原创 2019-03-21 16:40:04 · 168 阅读 · 0 评论 -
python之数字、字符串、列表类型的内置方法
目录一、可变与不可变类型二、数字类型三、字符串类型四、列表类型一、可变与不可变类型可变类型:值改变,但是id不变,证明就是在改变原值,是可变类型不可变类型:值改变,id也跟着改变,证明产生了新的值,是不可变类型# 整型是不可变类型x = 9print(id(x))x = 10print(id(x))# 列表是可变类型l = ['a','b'...原创 2019-03-22 17:19:20 · 215 阅读 · 0 评论 -
python之元组、字典、集合
一、元组1、定义:t1 = () #元组一旦定义不可改变,不要定义空的元组#参数为for可以循环遍历的对象(可迭代对象)t2 = tuple("123")print(t2,type(t2))t3 = tuple([1,2,3])print(t3,type(t3))t4 = tuple((7,8,9))print(t4,type(t4))# 思考:如何定义一个只有...原创 2019-03-25 23:52:18 · 146 阅读 · 0 评论 -
python之字符编码,文件操作
今日内容: 1.字符编码: 人识别的语言与机器识别的语言转化的媒介 ***** 2.字符与字节: 字符占多少字节,字符串转化 *** 3.文件操作: 操作硬盘中的一块区域:读写操作 *****一、文本编辑器存取文件的原理1、打开编辑器就打开了启动了一个进程,是在内存中的,所以,用编辑器编写的内容也都是存放与内存中的,断电后数据丢失2、要想永久保存,需要点...原创 2019-03-26 15:54:35 · 269 阅读 · 0 评论 -
python之函数
一、函数的定义(函数一定是先定义,后引用)函数是完成特定功能的代码块。def:声明函数的关键字fun:函数变量名():参数列表,参数可以是0-n个,但是()不能丢函数体:实现功能的具体代码return:函数的返回值代码示例:def fn(): print("In the function1") return 'good'print(fn())...原创 2019-03-28 23:44:51 · 187 阅读 · 0 评论 -
python之装饰器
一、nonlocal关键字def outer(): num = 0 def inner(): # 如果想在被嵌套的函数中修改外部函数变量(名字)的值 nonlocal num # 将 L 与 E(E中的名字需要提前定义) 的名字统一 num = 10 print(num) # 10 inner() ...原创 2019-04-02 15:29:34 · 225 阅读 · 0 评论 -
python之迭代器、生成器
一、迭代器1、概念器:包含了多个值的容器迭代:循环反馈(一次从容器中取出一个值)迭代器:从装有多个值的容器中一次取出一个值给外界s = 'abcdef'ls = [1,2,3,4,5]遍历:被遍历的对象必须是有序容器i = 0while i < len(ls): print(ls[i]) i += 1st = {1,2,3,4,5}dic = ...原创 2019-04-03 15:28:02 · 148 阅读 · 0 评论 -
python之模块初识
一、函数回调# 提前写出函数的调用,再去考虑函数体的实现# 怎么样提前写出函数的调用:在另一个函数中写出函数的调用# 再去考虑函数体的实现:根据实际的需求# 自定义一个sleepdef my_sleep(sec): import time current_time = time.time() while time.time() - current_time...原创 2019-04-08 18:50:45 · 221 阅读 · 0 评论 -
python之包的概念
一、模块1、模块的加载顺序加载顺序:内存--》内置--》sys.path(一系列自定义模块)import syssys.path #环境变量:存放文件路径的列表重点:默认列表的第一个元素就是当前被执行文件所在的目录可以自定义往sys.path添加路径sys.path.append(r'想导入的模块的绝对路径') #添加到环境变量最后,最后被查找sys.path...原创 2019-04-09 20:02:38 · 233 阅读 · 0 评论 -
python之系统、时间、序列化模块
一、时间模块1、标准库time%y 两位数的年份表示(00-99)%Y 四位数的年份表示(0000-9999)%m 月份(01-12)%d 月中的一天(0-31)%H 24小时制小时数(0-23)%I 12小时制小时数(01-12)%M 分钟数(00-59)%S 秒(00-59)%a 本地简化星期名称%A 本地完整星期名称%b 本地简化的月份名称...原创 2019-04-10 22:55:32 · 494 阅读 · 0 评论 -
python之shelve/shutil/random/logging模块/标准流
一、标准流1.1、标准输入流res = sys.stdin.read(3)可以设置读取的字节数print(res)res = sys.stdin.readline()print(res)1.2、标准输出流import syssys.stdout.write('123') # 相当于print('123', end='')sys.stdout.write('123\...原创 2019-04-11 17:07:33 · 235 阅读 · 0 评论 -
python之加密、excel操作、ini文件操作、xml操作模块及数据格式分类
一、加密模块1、有解密的加密方式(base64)#base64加密import base64str_encrypt = input("输入要加密的字符串:\n")base64_encrypt = base64.b64encode(str_encrypt.encode('utf-8'))print("BASE64加密串:\n"+str(base64_encrypt,'utf-8')...原创 2019-04-15 21:29:01 · 1639 阅读 · 0 评论 -
python之re模块,内存管理
一、内存管理1、垃圾回收机制不能被程序访问到的数据,就称之为垃圾。1.1、引用计数引用计数是用来记录值的内存地址被记录的次数的。每一次对值地址的引用都使该值的引用计数+1;每一次对值地址的释放都使其引用计数-1;当一个值的引用计数为0时,就会被系统的垃圾回收机制回收。1.2、循环导入:# 循环引用,内存泄漏ls1 = [666]ls2 = [888]ls1.ap...原创 2019-04-16 15:44:29 · 533 阅读 · 0 评论 -
python之面向对象
一、名称空间名称空间有内置名称空间,全局名称空间,局部名称空间。它是用来存放名字与值对应关系的地方。test.py文件:num = 10def fn(): print("fn run")def func(): a = 10 print(locals()) # 以字典类型返回当前位置的全部局部变量{'a': 10}func()print(func...原创 2019-04-17 19:17:50 · 1540 阅读 · 0 评论 -
python之面向对象2+异常处理
目录一、组合二、继承2.1、继承关系2.2、有继承关系下的属性查找顺序2.3、方法的重写2.4、方法的重用2.5、多继承2.5.1、简单的多继承2.5.2、复杂多继承2.5.3、菱形继承三、接口思想3.1、抽象类四、多态4.1、多态4.2、鸭子类型五、内置方法5.1、__call__:在对象被调用时自动触发该方法。5.2...原创 2019-04-19 17:04:05 · 244 阅读 · 0 评论 -
python之简介与变量
更新pip ---- python36 -m pip install --upgrade pip目录一、编程语言介绍1.1、机器语言:1.2、汇编语言:1.3、高级语言:二、安装python解释器2.1、验证python解释器的安装2.2、设置环境变量三、执行python程序的两种方式3.1、交互式:3.2、命令行:python3 D:\t...原创 2019-03-19 15:32:29 · 142 阅读 · 0 评论