Python技术学习
文章平均质量分 65
系统性地梳理Python编程中涉及到的核心技术以及问题,欢迎大家一起交流和批评指正。
rs勿忘初心
刻意练习,享受创造的快乐。公众号:rs勿忘初心
展开
-
Python3:多行文本内容转换为标准的cURL请求参数值
在一些编程软件里面一般无需额外处理,比如在Python3中我们可以使用 """xxxx""" 处理多行文本,但直接复制作为Postman请求的参数时,会出现格式问题。原创 2024-08-22 16:15:01 · 368 阅读 · 0 评论 -
PyCharm查看文件或代码变更记录
Mac笔记本上有一个截图的定时任务在运行,本地Python使用的是PyCharm IDE,负责的同事休假,然后定时任务运行的结果不符合预期,一下子不知道问题出现在哪里。原创 2024-07-17 20:45:06 · 785 阅读 · 0 评论 -
Python3:开发编码规范常用工具介绍
在开发中大型项目时,往往需要多人参与,甚至跨团队合作。试想一下,如果每个人都按照自己的编码习惯和风格来,那简直是个灾难,最后的代码肯定破碎不堪、难以入目。因此在多人参与的大型项目里,最基本的一件事就是让所有人的代码风格保持一致,整洁得就像是出自同一人之手。下面抛砖引入介绍几个与代码风格有关的工具。flake8、isort、black:常用的代码检查与格式化工具。原创 2024-05-15 21:03:51 · 1025 阅读 · 1 评论 -
Python3:@property属性装饰器
函数方法我们应该并不陌生,属性其实也一样,只是我们很少口语化提这个说法。在 Python 中,属性是与对象相关联的特性或数据。属性可以是对象的状态信息,也可以是对象的行为。实例属性(Instance Attributes):实例属性是与特定对象实例相关联的属性。每个对象实例都可以有自己独立的实例属性,它们保存在对象的命名空间中。实例属性通常在对象的构造函数__init__中初始化,也可以在任何地方动态添加或修改。例如:self.name = name # 实例属性。原创 2024-04-25 11:34:20 · 1041 阅读 · 1 评论 -
Python3:参数传递之*args和**kwargs
在日常编写Python代码时,我们经常会看到函数的参数中出现*args 和 **kwargs,特别是是在一些标准库或者高级用法,比如函数装饰器等,下面简单介绍下其含义和用法。原创 2024-04-24 10:59:56 · 545 阅读 · 1 评论 -
Python3:函数的圈复杂度
那什么样的函数才能算是过于复杂?一般会通过两个标准来判断,长度和圈复杂度。原创 2024-04-23 17:59:52 · 552 阅读 · 1 评论 -
Python3:读取和处理超大文件
在日常工作中,文件对象是我们常接触到的可迭代类型之一。一般用 for 循环遍历一个文件对象,可以逐行读取它的内容。但这种方式在碰到大文件时,可能会出现一些奇怪的效率问题。原创 2024-04-18 21:07:07 · 1618 阅读 · 1 评论 -
Python3:数据校验机制
使用 Pydantic,你可以通过简单的 Python 类来定义数据模型。这些类使用类型提示来定义字段的类型,并且支持各种 Python 原生类型、自定义类以及第三方库的类型。原创 2024-04-17 21:41:21 · 1088 阅读 · 0 评论 -
大模型快速实现python3+html内容在线渲染
有一份数据需要通过前端在线展示给用户,不需要复杂的样式交互,后端服务是基于Python3实现的API接口,对前端技术不是很了解,需要快速实现该需求。原创 2024-03-06 09:53:23 · 859 阅读 · 0 评论 -
pip3安装依赖库报错:OSError: [Errno 31] Too many links: ‘/tmp/pip-ephem-wheel-cache-xxx‘
如果不能重启或者不方便重启,可以删除/tmp目录下的文件,删除前确保有对应的权限执行,网上看有说直接全部删除/tmp目录的所有文件,这种方法可能会有一点风险,:有些文件和目录可能是系统重要的组成部分,删除它们可能会导致系统出现问题。因此,除非你明确知道哪些文件是安全可删除的,否则最好不要删除系统创建的文件和目录。:确保在删除文件之前,相关的应用程序已经关闭,否则可能会导致应用程序出现问题。目录中的文件,但是务必小心谨慎,并且确保没有正在使用的文件。目录,因此删除文件可能只是暂时的。综上所述,你可以删除。原创 2024-03-04 19:49:57 · 388 阅读 · 0 评论 -
Python3统计json格式文件中各个key对应值出现的频次
现在有一个文件query_demo.json,里面的数据格式示例如下,query字段代表的是用户的提问,现在想统计所有不同query出现的频次。原创 2024-03-04 14:38:32 · 669 阅读 · 0 评论 -
判断某个ip是否在某个网段下
来判断一个IP是否在某一个网段下。可以使用Python3中的。ipaddress库。原创 2023-12-14 17:48:42 · 519 阅读 · 0 评论 -
JavaScript 中CryptoJS.SHA256对应 Python 版本
函数,在 Python 中对应的版本是。,详情可以看下下面的两个示例代码。JavaScript的。原创 2022-12-23 11:13:50 · 1122 阅读 · 0 评论 -
Python+Flask设置ip白名单
基于 Flask 开发了一些 API接口,接口的控制需要访问权限,防止外部用户随意调用。原创 2022-11-24 10:28:26 · 1928 阅读 · 0 评论 -
PyCharm中 python 类型文件被识别为Text文本类型
具体展示为什么类型其实就是右边的匹配规则决定的。原创 2022-11-19 16:51:19 · 1458 阅读 · 0 评论 -
Python定时任务调度:apscheduler常见的使用示例
APScheduler用起来十分方便,提供了基于日期,时间间隔及类型的任务。为我们提供了构建专用调度器或者调度服务的基础模块。APScheduler不是一个或服务,它自身不带有任何命令行工具。它主要在现有的程序中运行,安装:pip3 install apscheduler。原创 2022-09-21 16:14:31 · 1088 阅读 · 0 评论 -
Python编码问题
临时解决:把Python3中的ascii.py的内容用utf_8.py文件内容替换。知道是编码的问题,但是不知道具体什么原因,最后是按照下面这个方法解决的。原创 2022-08-22 20:56:53 · 1431 阅读 · 0 评论 -
Python3 自动生成第三方依赖模块文件信息requirements.txt
历史的Python代码库或文件夹需要迁移,依赖的Python第三方模块一个个安装也比较繁琐,期望可以快速获取到对应的第三方依赖模块列表。原创 2022-07-21 20:59:55 · 1016 阅读 · 0 评论 -
OpenApi-Generator:简化RESTful API开发流程
OpenAPI Generator 是一个完全免费开源 (Apache 许可 v2) 的项目,用来生成 REST1 API 客户端、服务器存根和基于 OpenAPI (以前称为 Swagger ) 规范的文档。如果您不熟悉OpenAPI 规范,那么它就是描述 RESTful API 方面最流行的标准,并得到 Adobe,Atlassian,CA Technologies,eBay,IBM,Google,Microsoft,PayPal、Salesforce,SAP,SmartBear 等众多知名公司的支持2原创 2022-07-01 17:55:22 · 9599 阅读 · 1 评论 -
Prometheus Flask exporter使用示例
prometheus-flask-exporter该库提供flask应用的http请求度量,可以导出数据到Prometheus,它还可以使用方便的函数跟踪方法调用。参考官网说明:prometheus-flask-exporter · PyPI3、完整的示例如果直接看官网说明,你可能会觉得一下子不太好理解,下面我们基于一个完整的示例来看下,效果图:代码完整示例参考:(prometheus_flask_exporter/examples/sample-signals/)prometheus_flask原创 2022-06-19 11:40:23 · 1449 阅读 · 1 评论 -
Python:Json与Markdown互相转换
因为一些特殊场景的需要,需要将接口的json返回渲染成markdown形式,自己处理的还挺麻烦的,俗话说的好:站在巨人的肩膀上。下面介绍了基于Python的Json与Markdown互相转换的方式,当然你可以在Github上多搜搜看看。https://github.com/PolBaladas/torsimany 安装依赖库:torsimany使用方式:假设我们有个文件:products.json,内容如下:我们在终端执行如下命令:如果Python3报错:AttributeError原创 2022-06-13 20:47:10 · 5506 阅读 · 0 评论 -
Python操作Mysql之SQLAlchemy(ORM)
目录一、Python 操作 MySQL常见方式二、Flask-SQLAlchemy 扩展1、一个最小应用二、一对多(one-to-many)关系:ForeignKey用 Python 操作 MySQL很多种方式,比如:mysql-connecto、MySQLdb、mysqlclient、PyMySQL、peewee 和 SQLAIchemy 等,其中 mysql-connector是 MySQL 官方提供的驱动器,用来给后端语言,比如 Python 提供连接,这种基本就是写SQL语句的方式 ,简单的场景可以原创 2022-06-12 22:30:50 · 2582 阅读 · 0 评论 -
Python日期获取:今天及昨天的年月日等信息
在日常的工作,经常需要获取时间等相关信息,使用python获取的方式如下:demo.py输出结果:原创 2022-06-01 11:25:10 · 5580 阅读 · 0 评论 -
Python数组字典排序sorted()与sort()用法
在Python里面,当数组里面有多个字典类型的数据,需要排序时该怎么操作呢?比如数组格式是"'场景1_2025-05-20 10:51:00''(以下划线分隔),我们想以时间(time字段)从大到小排序,可以使用sort()和sorted()函数,直接看下面的代码示例:sort_demo.py# -*- coding: UTF-8 -*-"""@Time : 2022/4/9 17:51@Auth : rs"""# 数据示例a = [ {'time': '场景1_2025原创 2022-05-21 13:58:44 · 1151 阅读 · 0 评论 -
flask-profiler:统计flask应用接口请求数和耗时情况
一、背景我们基于Flask开发了一些测试工具和应用,有一天老板问我,说这个有多少人用啊?请求数目大概是怎样的?我支支吾吾一脸懵逼......下来想了下,准备基于Python的装饰器和消息中间件(MQ)来做统计,即每个接口都加上这个装饰器,而这个装饰器的作用就是解析各个请求的相关信息,然后异步发送给一个消息中间件(MQ),最后写个消费者来处理这些消息并存储....虽然思路有了,但是感觉实现成本还是挺大的,幸运的是找到了一个库:flask-profiler,实践了下,这个基本可以满足我们的需求。原创 2022-05-07 20:11:48 · 3837 阅读 · 1 评论 -
Python线程池
一、线程创建的开销与线程池1.线程创建的开销对操作系统来说,创建一个线程的代价是十分昂贵的,需要给它分配内存、列入调度,同时在线程切换的时候还要执行内存换页,CPU 的缓存被清空,切换回来的时候还要重新从内存中读取信息,破坏了数据的局部性。【分配内存、列入调度、内存换页、清空缓存和重新读取】关于内存开销Java线程的线程栈区别于堆,它是不受Java程序控制的,只受系统资源限制。默认一个线程的线程栈大小是1M,别小看这1M的空间,如果每个用户请求都新建线程的话,1024个用户光线程就占用了1个原创 2022-05-07 14:51:45 · 1780 阅读 · 0 评论 -
Appium统计iOS或者Android应用的性能
我们知道可以通过Appium来控制iOS或者Android设备,进而做一些自动化测试的任务,那么如果我们想收集应用(APP)的基础性能数据呢?1、手动统计方法Andriod设备可以通过adb命令("adb shell top")来简单的手机,iOS设备可以xCode的instruments工具来统计,如下所示,事实上也适用于Mac设备。2、自动化统计方法那么这些统计方式怎么集成到我们的自动化工具中呢?appium的官方给我们提供了对应封装,如:“Execute Mobile原创 2022-03-03 21:32:57 · 3653 阅读 · 0 评论 -
iOS环境,Appium不支持driver.current_activity等操作
在Android环境,可以使用driver.current_activity来获取当前应用的包名/界面名,但是在iOS环境下发现不行,报错 "Method has not yet been implemented"查了下官网,发现确实不支持iOS,官网地址:Current Activity - Appium我们可以使用Appium的Get App State来获取应用程序状态,具体用法如下:Get App State - Appium返回的结果说明:0is not instal.原创 2022-03-02 12:04:07 · 2144 阅读 · 0 评论 -
Flask常见问题记录
Ps:记录使用Flask时遇到的一些问题。1、Docker + Flask部署报错启动时报错信息: ImportError: cannot import name ‘json’ from itsdangerous部署的flask版本:2.0.1报错原因:flask版本兼容问题,升级到2以上版本,比如:flask==2.0.1如果使用了flask_restful,需要升级到>0.3.8版本,比如:flask_restful==0.3.9,否则可能会报错:cannot import原创 2022-02-25 11:40:29 · 2296 阅读 · 0 评论 -
Python判断指定日期是不是中国工作日/节假日
判断一个日期是否为工作日、节假日,有一个现成的库函数:chinesecalendarchinesecalendar · PyPI1、安装pip3 install chinesecalendar2、代码示例from datetime import datetimefrom chinese_calendar import is_workdaydef isWorkdays(date_value): """ # 判断是否是法定节假日 """ if is_workda.原创 2022-02-18 16:48:11 · 9950 阅读 · 3 评论 -
分布式任务队列:Celery使用记录
一、基本介绍Github地址:https://github.com/celery/celery最新的中文文档托管在前言 - Celery 中文手册中,包含用户指南、教程、API接口等。Celery 是一款非常简单、灵活、可靠的分布式系统,可用于处理大量消息,并且提供了一整套操作此系统的一系列工具。Celery 是一款消息队列工具,可用于处理实时数据以及任务调度。...原创 2022-02-11 14:40:34 · 3071 阅读 · 1 评论 -
Python高频使用的代码片段
针对工作生活中基础的功能和操作,梳理了下对应的几个Python代码片段,供参考:日期生成获取过去 N 天的日期import datetimedef get_nday_list(n): before_n_days = [] # [::-1]控制日期排序 for i in range(1, n + 1)[::-1]: before_n_days.append(str(datetime.date.today() - datetime.timedelta(原创 2022-01-25 09:49:54 · 2100 阅读 · 0 评论 -
python+selenium自动化driver.switch_to.frame用法
1.为什么需要有frame?因为一个页面如果只有一个html,所有内容都要用表格来分是很难而且很丑,所以引进了frame可以将左侧树、右侧内容,顶端导航轻松分开。那么我们也有应对的方法就是要操作哪个元素先进入这个对应元素的frame里,一般frame有name或id属性。如下图 2.解决进入frame的方法 1.iFrame有ID 或者 name的情况dr.swi...转载 2018-11-13 16:08:21 · 13186 阅读 · 5 评论 -
nosetest忽略执行指定文件方法
在安装好nose后,我们执行类似nosetest -v hello.py就可以运行指定文件,执行nosetest -v就可以运行当前目录下的所有文件,但有时候有些文件是我们不想运行的,也不想删除,这个时候就可以利用-I或者--ignore参数来指定你想忽略不执行的文件,如下图所示:...原创 2019-04-09 19:24:01 · 817 阅读 · 0 评论 -
从XKCD网站下载自动所有漫画图片---python实现
经常跟新的网站通常有一个首页,其中有最新的帖子,以及一个“前一篇”(或上一页)按钮,用来跳转到以前的帖子。然后那个帖子也有一个“前一篇”的按钮,以此内推。这创建了一条线索,从最近的页面,直到该网站的第一个帖子,如果你希望拷贝该网站的内容,在离线的时候阅读,可以手工导航到每个页面并保存。但这是很无聊的工作,这里可以写一个程序来实现这个操作。 XKCD是一个流行的极客漫画网站,它符合这个原创 2018-01-05 19:45:21 · 2546 阅读 · 1 评论 -
python:threading.Thread类的使用详解
参考:https://blog.csdn.net/drdairen/article/details/60962439http://www.cnblogs.com/429512065qhq/p/8779100.html这两篇讲的特别详细:(推荐)https://blog.csdn.net/zhangzheng0413/article/details/41728869/https:...原创 2019-02-21 17:05:14 · 1925 阅读 · 0 评论 -
python打包及支持pip安装
目录1.Configure: package_test的文件和目录组织2. Package: 打包package_test3. Distribute: 把打包后的 package_test发布到 Pypi 中pip是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。很多时候我们是可以通过类似:pip install ...原创 2019-03-31 16:01:31 · 6252 阅读 · 2 评论 -
python中的cls到底指的是什么,与self有什么区别?
作者:秦风链接:https://www.zhihu.com/question/49660420/answer/335991541来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 一般来说,要使用某个类的方法,需要先实例化一个对象再调用方法。而使用@staticmethod或@classmethod,就可以不需要实例化,直接类名.方法名()来调用。这...转载 2018-07-31 11:13:09 · 43277 阅读 · 8 评论 -
python实践项目(三)
井字棋盘 井字棋盘看起来像一个大的井字符号(#), 有9 个空格,可以包含 X、 O或空。要用字典表示棋盘,可以为每个空格分配一个字符串键, 如图 5-2所示。图 5-2井字棋盘的空格和它们对应的键可以用字符串值来表示,棋盘上每个空格有什么:'X'、 'O'或' '(空格字符)。因此,需要存储9 个字符串。可以用一个字典来做这事。带有键'top-R'原创 2017-10-31 11:57:47 · 2110 阅读 · 0 评论 -
ubuntu下python多版本切换问题
一般情况下,ubunu系统下会自带python,你如果安装了其它版本的python,就会出现多个版本的python,因此想要在ubuntu终端下切换不同的版本,就是设置你默认的python版本,这里演示了从Anaconda Python2.7.13版本切换到ubuntu 16.04LTS版本自带的python 2.7.12版本,具体参考步骤如下:( 具体以读者操作为准)(1)首先在...原创 2018-04-17 20:20:23 · 9165 阅读 · 1 评论