![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
python
文章平均质量分 60
LSYHhhhh
github 链接 - https://github.com/Lin-SiYu
展开
-
Python - Pathlib - 面向对象的文件系统路径
文章目录一、Pathlib 替代 os.path 和 glob 模块1-1 pathlib vs os.path 应用对比1-2 pathlib vs glob (Unix风格的路径名模式扩展) 应用类比1-3 不同系统的文件路径规范1-4 path对象的接受1-5 string 和 path 对象的相互转换二、Pathlib - 面向对象的文件路径处理2-0 所有类解析2-1 Path 类的属...原创 2019-08-29 16:31:19 · 740 阅读 · 0 评论 -
Python3 - importlib模块
目录一、importlib模块二、动态导入模块的库 - 将模块变成对象使用2-1 文件目录结构2-2 importlib导入模块2-3 常用方式一、importlib模块Python提供了importlib包作为标准库的一部分。目的就是提供Python中import语句的实现(以及__import__函数)。另外,importlib允许程序员创建他们自定义的...原创 2018-12-13 19:42:19 · 2589 阅读 · 0 评论 -
Python - 练习题
目录一、遍历一个文件夹,打印出该文件夹下所有的py文件一、遍历一个文件夹,打印出该文件夹下所有的py文件# 获取当前工作目录print(os.getcwd())# 列出指定目录下的所有文件和子目录print(os.listdir(os.getcwd()))# l = os.listdir(os.getcwd())# 当前文件夹下的py文件py_list = [i fo...原创 2018-11-20 21:05:57 · 202 阅读 · 0 评论 -
Python - 函数 - 闭包、装饰器、递归
目录一、闭包 - 内部函数包含,对外层作用域而非全局作用域的引用1-1 闭包的意义 - 优先使用自己外层包裹的作用域二、装饰器 - 闭包的一种应用方式2-1 不使用装饰器实现装饰器的功能 - 使用闭包2-2 无参装饰器(@装饰器名)2-2-1 无参装饰器 - 书写格式2-2-2 无参装饰器练习 - 认证功能装饰器2-3 有参装饰器(@装饰器名(参数名))2-3-...原创 2018-11-20 19:39:27 · 270 阅读 · 0 评论 -
Python - 函数基础概念 - 三种形式、参数、嵌套、名称空间
目录一、函数的三种形式1-1 语句形式 - foo()1-2 表达式形式 - 3*len('hello')1-3 参数形式 - range(len('hello'))二、 形参 and 实参2-1 位置参数 - 实参和形参位置上一一对应,不可多值 、少值2-2 关键词参数 - 形参实参指定变量名,以关键词辨认位置2-3 默认形参 -设置默认值的关键词参数,传值时可省...原创 2018-11-20 19:10:32 · 507 阅读 · 0 评论 -
Python3 - pymysql模块(第三方)
目录零、pymysql一、简单操作数据库(建立连接、获取游标、关闭连接)二、 数据库的增、删、改操作(conn.commit())三、数据库的查找(fetchone,fetchmany,fetchall)四、获取插入数据表的最后一条数据的自增id(cursor.lastrowid)五、pymysql对sql注入的自动预防5-1 基于防注入的SQL语句写法 - 字典...原创 2018-09-19 15:00:51 · 1102 阅读 · 0 评论 -
python3 - 死锁 and 递归锁
目录死锁:两个或两个以上的进程或线程,在执行过程中,因抢夺资源而造成的相互无解等待的现象。递归锁:在python中支持在同一线程中多次请求同一资源。 - Rlock模块:递归锁的实现模块,用来防止死锁问题出现死锁:两个或两个以上的进程或线程,在执行过程中,因抢夺资源而造成的相互无解等待的现象。死锁进程:产生了死锁现象的进程。 例如:from threading i...原创 2018-09-07 17:16:55 · 284 阅读 · 0 评论 -
python3 - 全局解释器锁(GIL)
目录定义:系统层面的线程处理:未加GIL锁存在的安全隐患(线程安全):GIL总结:GIL下的多进程和多线程 - 多线程、多进程效率测试 - 计算密集型:多进程效率高- I/O密集型:多线程效率高GIL和Lock(即全局解释器锁和本地锁)定义: In CPython, the global interpreter lock, or GIL, is a m...原创 2018-09-07 17:04:16 · 1070 阅读 · 0 评论 -
python3 - tkinter模块学习,内置GUI
目录创建窗口的必备环节窗口常用属性几何管理- pack():包装- grid():网格-place():位置常用控件 - Label (根对象,[属性列表]) - Frame :在屏幕上创建矩形容器,用来布局窗口- Entry:创建单行可输入文本框- Text:向空间内输入文本,t = Text(根对象)- Button :创建按钮,Button(m...原创 2018-09-10 20:27:46 · 11065 阅读 · 2 评论 -
python3 - 基于 gevent 模块,实现服务端单线程下多协程,套接字并发通信
服务端from gevent import monkey;monkey.patch_all()import socketimport struct, jsonfrom gevent import spawndef task(conn, c_add): ''' 在子线程内,实现对应客户端等待输入和数据处理 :param conn: :return:...原创 2018-09-10 19:46:01 · 316 阅读 · 0 评论 -
python3 - 协程
目录协程(Coroutine):单线程实现并发的概念- 单线程下,未加入协程概念的任务执行(串行)- 单线程下,基于yield并发执行- gevent 模块:第三方库,实现同步并发或异步编程。协程(Coroutine):单线程实现并发的概念由于并发的概念,即在同段时间内同时执行任务,核心在于切换执行和保存执行状态。所以,只要在单线程中实现‘任务切换’+‘保存执行状态’就...原创 2018-09-10 19:16:14 · 169 阅读 · 0 评论 -
python3 - concurrent.futures模块 - 进程池&线程池
目录一、概念总结1-1 池:控制进程数或线程数的概念。1-2 同步&异步调用:提交任务的两种方式1-3 阻塞&非阻塞:程序的运行状态二、concurrent.futures 模块实现‘池’2-0 concurrent.futures基本总结2-0-1 基本方法(进程池和线程池都适用)2-1 进程池2-1-1 进程池的两种任务提交方式2-1-2...原创 2018-09-10 12:20:33 · 3788 阅读 · 2 评论 -
python3 - 基于threading模块下Thread,实现多线程TCP套接字通信
服务器import socketfrom threading import Threadimport struct, jsonIP = '127.0.0.1'PORT = 8080ADD = (IP, PORT)server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server.bind(ADD)server....原创 2018-09-06 19:20:25 · 1983 阅读 · 0 评论 -
python3 - 基于socketserver模块 简单的文件上传下载(本地测试)
服务端import socketserver, struct, json, osIP = '127.0.0.1'PORT = 8080SERVER_ADD = (IP, PORT)class MyTCPClass(socketserver.BaseRequestHandler): def get_upload(self, hander): file_s...原创 2018-09-06 16:45:13 · 1151 阅读 · 9 评论 -
Python - Redis 操作
目录Redis的注意点总结一、Redis 安装1-1 Linux下安装1-2 Windows下安装二、Python模块安装 -redis三、Python 连接 Redis操作3-1 普通连接3-2 连接池连接 - 注意:程序仅生产一个池,即使用单例模式四、redis模块 - String操作4-1 设值4-1-1 set(self, name, val...原创 2018-12-26 20:09:31 · 2247 阅读 · 2 评论 -
Python3 - 实现邮件的发送
目录一、 使用SMTP模块发送邮寄二、 发送HTML格式右键三、发送带附件的邮件四、Django处理邮件的发送4-1 settings配置4-2 授权码的获取 4-3 视图函数4-4 群发邮件(一次发送多份)4-5 携带附件或发送HTML(需要接收方的支持)4-6 基于SMTP的各大邮箱公司的 ‘服务器’ 及 ‘端口’一、 使用SMTP模块发送邮寄...原创 2018-12-10 17:22:39 · 77035 阅读 · 0 评论 -
Python3 - setting的默认配置和用户配置读取
目录一、需求分析二、实现思路2-1 实现目录2-2 执行文件 - 环境变量配置、导入settings属性2-3 conf文件夹__init__.py文件 - 写入setting类、实例化放入属性的setting对象2-4 配置文件 - globalsetting.py 、setting.py三、重复代码的优化方式一、需求分析存在内置setting文件 - co...原创 2018-12-18 15:19:40 · 6588 阅读 · 0 评论 -
Python - 技巧总结 - Tips & Tricks
目录一、and,or二、三目运算符的四种写法三、else with loop - 循环执行完后执行else四、list 倒叙遍历 - 先倒叙,再遍历五、dict 生成字典5-1 dict() vs {}六、try 中的 return七、enumerate 活用7-1 遍历列表生成字典参考学习 - Python Tips & Tricks gith...原创 2019-04-25 15:52:54 · 205 阅读 · 0 评论 -
Python - 定时调度 - apscheduler
目录一、apscheduler 轻量级的定时调度1-1 基本概念 -APScheduler 的四种组件1-2triggers 组件 - 提供三种触发方式1-2-1 date - 在某个时间点执行一次(一次性)1-2-2 interval - 相隔指定时间段执行1-2-3 cron - 指定某个时间点执行1-3 任务操作1-3-1 任务添加 - add_job()...原创 2019-04-03 14:11:47 · 2137 阅读 · 0 评论 -
Python - operator 模块 - 实现内部运算符的高级函数
目录一、简单介绍及学习参考二、运算符的相关函数三、逻辑运算符的相关函数四、四则运算和位运算五、基于序列的操作六、通用属性和项目的查找工具6-1 attrgetter(attr) 从操作数中获取attr,若请求多个属性,则返回元组6-1-1 基于 attrgetter()+ sorted() 实现对同类实例们的排序,基于属性值6-2 itemgetter(i...原创 2019-04-09 12:00:42 · 1121 阅读 · 1 评论 -
Python - lambda 的使用注意
目录零、lambda 基础学习一、匿名函数中的变量绑定1-1 变量绑定问题描述 - 函数中的变量在执行时绑定1-2 实现函数内变量在定义时绑定 - 绑定最初的值1-3 由于绑定问题导致的迭代错误零、lambda 基础学习Python - 生成式、lambda 匿名函数一、匿名函数中的变量绑定!!!!注意!!!在业务逻辑和生产过程中,严重不建议使用 la...原创 2019-04-12 14:50:58 · 823 阅读 · 0 评论 -
Python - 字典的使用优化和应用技巧
目录一、zip() 对字典实现键值反转二、字典的集合操作,获取两个字典对象的相同或不同一、zip() 对字典实现键值反转!! 注意:zip函数返回一个迭代器,即内容只能消费一次!prices = {'a': 1, 'b': 123, 'c': 111, 'd': 555, 'e': 4}# !!注意,zip函数返回一个迭代器,即内容只能消费一次zip_prices...原创 2019-04-09 10:41:08 · 856 阅读 · 0 评论 -
Python - PyJWT、forex-python、pluginbase
目录一、PyJWT二、forex-python三、pluginbase一、PyJWTJson web Token的Python实现github 文档使用文档import jwtencoded = jwt.encode({'some': 'payload'}, 'secret', algorithm='HS256')#'eyJhbGciOiJIUzI1NiIs...原创 2019-04-01 17:08:52 · 648 阅读 · 0 评论 -
Python - 元组 + 二分法(bisect)优化多分支代码
目录一、应用实例二、bisect 学习一、应用实例有时,我们的代码里会出现超过三个分支的if/else。就像下面这样:import timedef from_now(ts): """接收一个过去的时间戳,返回距离当前时间的相对时间文字描述 """ now = time.time() seconds_delta = int(now -...原创 2019-04-01 15:35:57 · 617 阅读 · 0 评论 -
Python - with 对异常处理的优化 (上下文管理应用)
目录零、让对象支持上下文管理协议一、上下文管理的简单执行流程二、错误执行流程三、异常处理 with 应用四、raies 和 raise……from 的区别零、让对象支持上下文管理协议上下文管理协议:context-management protocol ,通过 with 语句触发。只要对象内实现 __enter__() 和 __exit__() 方法,就能兼容 w...原创 2019-04-01 15:05:49 · 1084 阅读 · 0 评论 -
Python3 - DBUtils + 第三方数据库操作模块 - 实现数据库连接池
目录一、介绍1-1 安装二、DBUtils简单使用 - 两种方式2-1 方式一、PersistentDB - 每个线程创立一个连接(不推荐)2-2 方式二、PooledDB - 创建一批连接,供所有线程共享使用(推荐)三、抽象处理 一、介绍PyMysql模块的简单使用DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全...原创 2019-02-20 15:56:56 · 13441 阅读 · 1 评论 -
Python3 - 函数 and 方法 and 魔法方法 and 偏函数
目录一、定义二、方法和函数的具体举例及其辨别方式三、偏函数的使用场景3-1 partial + sort - 实现单参数函数调用多参数函数一、定义函数:普通 def 出来,若存在参数,需要手动传参的函数。方法:类内 def 出来,不需要手动传 self 参数 的函数。注意!若使用类直接调用类内方法,该对象为函数。魔法方法:类内定义,以__开头的方法,可作...原创 2019-02-18 20:51:54 · 741 阅读 · 0 评论 -
Python3 - pipreqs模块 - 实现项目依赖库的信息抽取
目录一、使用方式1-1 Pycharm 直接安装二、使用原因三、requirements.txt 内存在-c参数3-1 注意事项一、使用方式安装方式 pip3 install pipreqs 生成依赖文件requirements.txt:pipreqs ./ --encoding=utf8 根据依赖文件安装项目依赖:pip3 install -r req...原创 2019-02-18 20:43:05 · 1331 阅读 · 0 评论 -
python3 学习 - 常用模块 re,subprocess
目录一、re模块1-1 正则表达式的常用指令1-1-1 wW、sS、n、t、dD、A、Z1-1-2 ^、$ - 匹配开头、结尾1-1-3 重复匹配 - . - * - ? - .* - .*? - + - {n,m}1-1-4 [ ] - 字符集合1-1-5 \\ - 斜杠的匹配1-1-6 () -分组,不改变整体匹配方式,但优先输出分组内部值1-1-7 fin...原创 2019-01-08 20:49:53 · 553 阅读 · 0 评论 -
CMDB 项目学习 - AES加密算法 - 数据的加密解密(Client端加密,Server端解密)
目录一、AES加密二、AES解密三、结果测试一、AES加密from Crypto.Cipher import AESdef encrypt(message): key = b'dfdsdfsasdfdsdfs' cipher = AES.new(key, AES.MODE_CBC, key) ba_data = bytearray(message...原创 2019-01-11 14:34:54 · 509 阅读 · 0 评论 -
python3 - 多线程 - threading 模块(基于win系统)- Thread、Timer 组件
目录一、threading 模块:对线程的处理二、Thread组件2-1 开启线程的方式一(函数)2-2 开启线程的方式二 (类)2-3 Thread 相关内置子方法 2-4 主进程等待新建线程实例2-5 线程共用创造进程内资源2-7 查看线程和‘父’进程的pid2-8 Thread 实现 “守护线程”2-8-1 守护线程概念介绍2-8-2 实现简单 ‘...原创 2018-09-06 16:26:20 · 2745 阅读 · 1 评论 -
python3-基于socket,实现简单文件传输
服务端import struct, json, socketIP = '127.0.0.1'PORT = 8080ADD = (IP, PORT)sever = socket.socket(socket.AF_INET, socket.SOCK_STREAM)sever.bind(ADD)sever.listen(5)conn, addr = sever.accept()...原创 2018-09-03 16:56:29 · 2907 阅读 · 0 评论 -
python3-内置方法
目录__init__,__setattr__,__delattr__,__getattr____getattr__、__getattribute____get__,__set__,__delete__(描述符)__str__、__repr__、__format__、 __del__、 __call__ __slots____next__和__iter__实现迭代器协议 ...原创 2018-08-27 15:33:57 · 221 阅读 · 0 评论 -
python3-面对对象-反射
目录一、反射:通过字符串的形式操作对象相关的属性。1-1 hasattr(object,name) - 判断object中有没有一个name字符串对应的方法或属性1-2 getattr(object, name, default=None) - 获取obj内name属性的值,即:object.name 若找不到属性 自动返回None1-3 setattr(object, name,...原创 2018-08-27 10:23:48 · 316 阅读 · 0 评论 -
python3-抛出、捕获异常
'''异常:错误发生的信号,程序随之终止三个部分: 1.traceback 异常的追踪信息(链接) 2.异常的类型 3.异常信息错误两大类: 1.语法错误(运行前进行判定和修正) 2.逻辑错误异常种类: AttributeError 属性错误 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x I...原创 2018-08-27 10:19:09 · 8744 阅读 · 0 评论 -
Python - heapq模块
目录一、heapq模块 - 基于堆的优先排序算法二、简单使用一、heapq模块 - 基于堆的优先排序算法heapq模块:提供基于堆的优先排序算法,自动将传入的序列进行堆排序。堆:堆通常是一个可以被看做一棵树的数组对象。堆总是满足下列性质: 堆中某个节点的值总是不大于或不小于其父节点的值; 堆总是一棵完全二叉树。二、简单使用import heapqnums...原创 2018-08-22 12:10:26 · 180 阅读 · 0 评论 -
python3-类与对象-类中定义的函数-绑定方法、非绑定方法
目录类中定义的函数一、绑定方法(类方法)1-1 绑定类的方法(类方法)1-2 绑定对象(类中的普通方法)二、非绑定方法(静态方法)类中定义的函数'''类方法、类中普通方法、静态方法: 所以逻辑上,类方法应当只被类调用,实例方法实例调用,静态方法两者都能调用。主要区别在于参数传递上的区别,实例方法悄悄传递的是self引用作为参数,而类方法悄...原创 2018-08-22 10:28:40 · 1066 阅读 · 0 评论 -
python学习-常用模块:logging,shelve,xml,configparser,hashlib
'''logging 模块 为logging模块指定全局配置,针对所有logger有效,控制打印到文件中 logging.basicConfig():更改logging模块默认行为,可用参数有: filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。 file...原创 2018-08-13 13:04:07 · 199 阅读 · 0 评论 -
python 的深浅拷贝
2453957690344245395769034424539576903442453957690344原创 2018-08-14 15:47:32 · 171 阅读 · 0 评论 -
python学习-内置函数
内置函数# abs() 返回数字的绝对值# all() 判断括号内的参数是否为真,进行与运算# 若括号内传入数据对象本身,则返回真# print(all([1,None,])) -------># F# print(all([1,'',])) -------># F# print(all([])) -------># T# print(all('')) ...原创 2018-08-06 15:10:40 · 130 阅读 · 0 评论