python
文章平均质量分 53
python学习笔记
Your_name666
开发小白,文章只为记录成长,方便自己回顾,会有很多出错的地方还望谅解
展开
-
【TCP】学习笔记
TCP介绍socket介绍服务端代码# -*-coding: utf-8 -*-"""@summary: TCP服务端@usage: TcpServerMain()"""import socketserverfrom loguru import loggerTCP_IP, TCP_PORT = "192.168.197.1", 8888logger.add("server.log", encoding='utf-8', rotation="5MB", retention=5原创 2021-11-12 11:39:22 · 1755 阅读 · 0 评论 -
【SSH】学习笔记
简介主要记录如何用 python 脚本去实现 SSH 的连接。建议先手动实操SSH,对SSH有了一定的理解后阅读。准备动作提前开启SSH服务端,实际操作方式可以参考【SSH实操】学习笔记,当然,同属于网络传输,根据 TCP/IP四层模型 ,理论上同样可以利用python 中的 socket(介于应用层、传输层的抽象层)去实现 SSH 的服务端,有兴趣的可以自行尝试。编写客户端脚本(详细解释可以查看注释)# -*- coding: utf-8 -*-"""@summary: SSH 连接模块原创 2021-10-23 20:56:48 · 272 阅读 · 0 评论 -
【过滤、匿名函数、排序】学习笔记
过滤filter() 函数用于过滤序列,过滤掉不符合条件的元素,返回由符合条件元素组成的新列表(迭代器)。filter(function, iterable)function – 函数iterable – 可迭代对象将可迭代对象的每个元素作为参数传递给函数,根据函数的返回值(True 或 False)进行判断,将返回 True 的元素放到新列表(迭代器)中。先设计判断函数:def is_int(putin: Union[int, str]): """ 判断输入数据是否为int类型 ""原创 2021-10-08 14:52:23 · 183 阅读 · 0 评论 -
【装饰器】学习笔记
python 函数装饰器简单来说,装饰器的作用是修改其他函数的功能。它其实是一个函数,只是这个函数的输入参数也是函数。你可以简单理解成,当你调用被装饰器装饰的函数时,被装饰的函数仅仅是作为一个传入参数,你实际执行的函数其实是你的装饰器函数。自定义装饰器直接上demo# -*- coding: utf-8 -*-# 定义一个装饰器,内容是打印函数的返回值def print_test(func): def _print(*args): print(f"{func(*ar原创 2021-10-06 17:32:15 · 84 阅读 · 0 评论 -
【python中的枚举】学习笔记
枚举的优势在于:使代码更易于阅读,允许用描述性的名称表示整数值,而不是用含义模糊的数来表示。将作用范围接近的常量值存放在一起,方便参数的管理。python 使用枚举# -*- coding: utf-8 -*-from enum import Enumclass StatusEnum(Enum): PARAM = 'YourName_666' SUCCESS = True, PARAM FAIL = False, PARAMprint(StatusEnum.原创 2021-09-07 21:39:40 · 101 阅读 · 0 评论 -
【mysql&数据库】学习笔记
简介数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。MySQL是数据库之一,是一个可以处理数据库的管理系统(RDBMS)。支持当前的SQL标准。标准SQL语句虽然关系型数据库有很多,但是大多数都遵循SQL(结构化查询语言,Structured Query Language)标准。常见的操作有查询,新增,更新,删除,求和,排序等。查询语句:SELECT param FROM table WHERE conditio原创 2021-08-23 21:17:41 · 98 阅读 · 0 评论 -
【MQTT轻量级物联网消息传输协议】学习笔记
MQTT简介MQTT 是一种基于发布/订阅模式的轻量级物联网消息传输协议,可以用极少的代码和带宽为联网设备提供实时可靠的消息服务。MQTT协议中有三种身份:发布者(Publish)、代理(Broker)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT中的几个重要名词一、订阅(Subscription)订阅包含主题筛选器(Topic Filter)和最大服务质量(QoS)。订阅会与一个会话(Session)关联。一个会话转载 2021-07-30 22:06:03 · 413 阅读 · 0 评论 -
【命令行传参】学习笔记
在调用python脚本时有时候会遇到需要从外部传入参数的行为。命令行传参可以很好地解决这个问题cmd.py# -*- coding: UTF-8 -*-import sysprint(f"传入参数个数:{len(sys.argv)}")for index in range(len(sys.argv)): print(f"参数序号:{index},参数内容:{sys.argv[index]}")执行结果:...原创 2021-07-24 17:37:00 · 117 阅读 · 0 评论 -
【字典&列表&元组&枚举】学习笔记
字典&列表&元组相较于C语言,python多了字典、列表、元组三种数据类型字典:字典是一种可变容器模型,且可存储任意类型对象。Dict= {'xxx': 'xxx'} # 创建字典Dict[name] = val # 添加、修改字典内容for key in Dict.keys(): # 遍历键 print("Key:", key, "; Value:", Dict[key])列表:列表的特点与C语言中的数组相似。列表是动态的,可以通过append()等函数对列表内原创 2021-07-05 20:52:41 · 240 阅读 · 0 评论 -
【文件读写&临时文件/目录】学习笔记
文件读写with open('test.txt', 'w+', encoding='utf-8') as fn: # 以'utf-8'格式,读写模式打开test.txt文件,若文件不存在,则创建 fn.write('Hello World') # 写入数据 print(f'fn: {fn.read()}') # 此时光标在写入的文件末尾 fn.seek(6) # 将光标写在第6个字节处 print(f'fn: {fn.read()}') # 读出光标后的所有数据,原创 2021-07-03 16:21:13 · 306 阅读 · 0 评论 -
【获取路径grob()】学习笔记
最近新接触了一个获取路径的方法—grob()。这个方法可以生成一个迭代器,里面会有文件比较全面的信息。并且使用简单,可以避免之前繁琐的提取,拼组路径的操作。目录文件结构GLOB│ glob_test.py│└───test | └───littkt_rain │ │ 20201010.h | └───your_name | 520 | 666.txtglob的使用Path('XXX').rglob('*') # 迭代遍历文件夹下所有文件Path('XXX').g原创 2021-06-23 20:49:28 · 274 阅读 · 0 评论 -
【串口通信】学习笔记
串口通信的原理串口通信(SerialCommunicaTIons)的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总长不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。典型地,串口用于ASCII码字符的传输。通信使用3根线完成,分别是地线、发送、接收。由于串口通信是异步的,端口能够在一根线上原创 2021-06-18 22:20:56 · 1714 阅读 · 0 评论 -
【时间调度器&线程】学习笔记
事件调度器事件调度器:顾名思义,主要作用是调度事件。其实对我而言,这个更像是一个定时器。这里不给出过多的解释(内容本身不复杂,暂时没找到官方的解释,担心误人子弟)。直接上代码。展示结果。函数sched = scheduler() # 实例化调度器sched.enter() # 加入事件sched.run() # 运行调度器代码# -*-coding: utf-8 -*-import timedef GetTime(): time_stamp = time.time()原创 2021-06-11 19:15:50 · 200 阅读 · 0 评论 -
【re正则表达式】学习笔记
在编写处理字符串的程序时,经常会有查找符合某些复杂规则的字符串的需要。正则表达式就是用于描述这些规则的工具。一些常用的正则表达式语法. 匹配除换行符 \n 之外的任何单字符* 匹配前面的子表达式零次或多次+ 匹配前面的子表达式一次或多次? 匹配前面的子表达式零次或一次{2} 匹配前面的子表达式2次\s 匹配任何空白字符,包括空格、制表符等[A-Z] 表示一个区间,匹配所有大写字母,[a-z] 表示所有小写字母[0-9]原创 2021-05-24 15:32:16 · 229 阅读 · 0 评论 -
【jinja2模版生成(以渲染html为例)】学习笔记
jinja2是一种模板语言,可以利用模版进行数据渲染的底层调用,省去重复的代码编写。https://zhuanlan.zhihu.com/p/72821104原创 2021-05-17 22:17:42 · 1790 阅读 · 0 评论 -
【RPC远程调用】学习笔记
什么是RPC远程调用RPC 是指远程 过程 调用,也就是在A服务器上想要调用B服务器上提供的函数 / 方法,由于不能直接调用,需要通过网络来表达调用的语义和传达调用的数据。说白一点,RPC就是要像调用本地的函数一样去调远程函数。执行过程分析(仅提供一种理解思维,个人看法,不对正确性做保证)既然是要实现:在A服务器上调用B服务器上提供的函数 / 方法,就需要满足以下几个条件:一、存在至少一个服务端server(B服务器),一个客户端client(A服务器)。二、只有在A处于运行状态下,B才能访问到相原创 2021-05-12 23:26:22 · 120 阅读 · 0 评论 -
【python操作excel数据有效性(含excel的基本操作)】学习笔记
Excel的数据有效性功能,可以对输入单元格的数据进行内容上的限制。当我们利用 excel 生成代码时,可以通过此类方式规范输入。以下是:【openpyxl官方文档】excel的基本操作生成xlsxwb = Workbook()wb.save(xls_path)加载excel文件# 加载excel文件(data_only=True 代表以数据形式而非公式)wb = load_workbook(xls_path, data_only=True)新建 sheet页wb = l原创 2021-04-12 18:27:11 · 1595 阅读 · 0 评论 -
【python环境下调用C代码---使用】学习笔记
实例化cffiimport cffiffi = cffi.FFI() # 实例化ffifrom _test_cffi import ffi, lib # 包含 ffi , 库使用C的数据类型string_data = ffi.new("char[]", b"hello") # 使用 char 类型, 数组num = ffi.new("int *", 520) # 使用 指针struct_data = ffi.new("struct_test *", [1, 2]) # 使用编译通过原创 2021-04-11 20:21:22 · 313 阅读 · 0 评论 -
【python环境下调用C代码---编译】学习笔记
实现原理:通过 cffi 将 C 的源代码编译成 .pyd文件 (pyd 是其他语言写的python库)。然后在 python 环境下调用 C 的接口函数。python环境下调用C代码 的内容相对较多,所以将 编译 和 使用方法 分两篇文章展示。该文介绍 编译 ,需要 使用方法 的可以直接阅读 【python环境下调用C代码—使用】学习笔记先丢出编译的基本代码(原型): import cffi ffi = cffi.FFI() # 实例化ffi # 声明xxx.h里的函数和全局变量原创 2021-04-06 23:59:36 · 783 阅读 · 2 评论 -
【python环境下调用C代码---附件】学习笔记
目录文件结构project│ cffi_test.py│ make_cdef.py│└───source_files │ call_back.h │ call_back.lib │ hello_world.c │ hello_world.hmake_cdef.py(自动编译 .h 文件):import cffifrom pathlib import PathSCRIPT_DIR = Path(__file__).paren原创 2021-04-11 19:19:33 · 261 阅读 · 1 评论