Python
文章平均质量分 55
Python
长行
这个作者很懒,什么都没留下…
展开
-
Python|生成项目的 requirements.txt 文件【v2】
优先推荐使用方法 1 或方法 3,即使用pipreqs或 PyCharm 工具扫描项目代码生成文件。pip freezepip freezepip freezepip freeze但是,使用pipreqs仅能扫描到项目中直接引用的包,如果在引用的包中使用了该包依赖中没有的包,则这些包也无法被pipreqs找到。但是,在开发过程中,这些包可能在我们排查问题时已经安装到了 Python 环境中。此时,使用方法 2 可以包含这些包。例如,pandas并没有依赖openpyxl,但在代码中可以选择使用。原创 2024-04-23 17:40:22 · 387 阅读 · 0 评论 -
Python|Linux 安装 Python 3.10+ 环境步骤
将 openssl 文件夹以及链接全部删除,重新解压缩、配置、编译、安装 openssl 后,再重新配置、编译、安装 Python。参考资料:https://blog.csdn.net/bo_self_effacing/article/details/123628224。参考资料:https://blog.csdn.net/qq_45742250/article/details/134876045。,那么在使用 pip 安装包时,旧会出现类似如下的报错。路径中,寻找是否存在缺失的依赖包,将它们重新定向到。原创 2024-04-22 11:19:31 · 1020 阅读 · 0 评论 -
Python|生成项目的 requirements.txt 文件
优先推荐使用方法 1,即使用pipreqs扫描项目代码生成文件。原创 2024-03-04 23:08:12 · 299 阅读 · 0 评论 -
Python|pip 及 setuptools 版本问题导致的装包报错问题处理
解决方案:升级 pip 版本。原创 2024-01-24 23:32:25 · 389 阅读 · 0 评论 -
Python|将 csv 文件转化为 sql 的 INSERT INTO 语句
最近有一个开发场景,需要将从 Hue 中导出的 csv 文件,转化为 INSERT INTO 语句并写入到测试数据库。原创 2023-12-31 17:56:26 · 528 阅读 · 0 评论 -
Python|文件中随机抽样(内存及水塘抽样两种方法)
最近有一个开发场景,需要从一个很大的文件中随机抽取一些不多的行进行测试。OnOnnOnOknk此外,还有另外一种方法三:先遍历一次文件计算文件中的行数,然后对行号进行抽样,最后打开两个文件,将原文件中被抽取的行号的行写入到新文件中;这样的时间复杂度是On,空间复杂度是O1(忽略操作系统缓存),其中n为文件中的行数。因为在我们的场景中,抽取的样本数量不大,方法二的空间复杂度已满足要求,所以方法三我没有开发。原创 2023-12-31 15:58:27 · 804 阅读 · 0 评论 -
Python 实例|为数据库连接类(Connection)增加 ssh 隧道的功能且不需要修改 Connection 的使用逻辑
实现一个数据库连接类(原创 2023-12-04 18:48:05 · 159 阅读 · 0 评论 -
Python 实例|通过 SSH 连接 MySQL
然后正常使用 MySQL 连接即可。原创 2023-10-25 20:02:35 · 604 阅读 · 0 评论 -
Python 性能优化|剔除多种不同前后缀的优化
优化后:将多个正则表达式合并到一个正则表达式中,统一一次检查前缀或后缀。原创 2023-10-24 13:22:45 · 48 阅读 · 0 评论 -
Python 语法特性|协程与 greenlet【学习笔记】
当操作系统切换线程时:需要切换线程的私有资源,包括栈、寄存器等;如需切换进程,则还需要切换用户态资源,包括内存、打开文件等。协程也可以理解为一种特殊的函数调用。正常函数在出口返回,而协程可以再中途返回而后恢复继续运行。优势:在经常有阻塞的情况下,主动让出时间片的协程模式比抢占式线程分配的效率要好,也简单得多。当调度策略切换协程时,只需要简单的现场保存和恢复。原创 2023-10-20 13:30:58 · 52 阅读 · 0 评论 -
Python 实例|支持计算最近速度和平均速度的计时器工具
的时间复杂度内计算任意时间段内的平均速度,我们记录每一条记录数量的前缀和,从而使计算任意时间段内的完成数量时,只需要将两个元素相减即可。因为我们主要优化高频调用前提下的性能,所以采用方案 2。尽可能提高在高频调用前提下的记录和查询性能。在查询性能方面,实现在。原创 2023-10-16 19:55:56 · 242 阅读 · 0 评论 -
Python 语法特性|uuid 模块整理
Python 的 uuid 模块是用于生成和操作 UUID(Universally Unique Identifier,通用唯一标识符)的模块。getnode():获取 48 位正整数形式的硬件地址。:根据主机 ID、序列号和当前时间生成一个 UUID。如果没有给出node,则使用getnode()来获取硬件地址;如果没有给出clock_seq,则使用随机的 14 比特位序列号。:根据命名空间标识符namespace和name的 MD5 哈希值来生成一个 UUID。uuid4()原创 2023-10-11 20:18:54 · 109 阅读 · 0 评论 -
Python 语法特性|Semaphore 和 BoundedSemaphore 信号量详解
信号量(Semaphore)是一种计数器,用于控制能同时访问某个资源的线程数量。它主要有两个操作:P(等待)和 V(释放)。当一个线程要访问共享资源时,它会调用 P 操作,如果计数器大于 0,则将计数器的值减 1,并允许访问资源;如果计数器等于 0,则线程被阻塞,直到计数器大于 0。当一个线程访问完共享资源后,会调用 V 操作,将计数器的值加 1,以允许其他线程访问资源。在 Python 的类和类中,acquire()方法对应 P 操作,release()方法对应 V 操作。Python 的。原创 2023-10-11 13:33:08 · 813 阅读 · 0 评论 -
Python|Linux 安装 Python 环境步骤
查找每个版本源码的 Python 官方页面:https://b3sh6jivuw.feishu.cn/docx/TkUmdXmMoocxYIxlKyic7DGrndc。其中的警告是因为没有将 Python 环境添加到 PATH 中。:配置 Python 源码编译后的安装路径。:下载需要安装的 Python 程序源码。:解压 Python 程序源码到当前目录。:编译 Python 源码并执行安装。:执行刚才指定的安装目录中的。原创 2023-10-09 14:56:50 · 176 阅读 · 0 评论 -
Python 报错处理|Windows 默认编码 gbk 不能解析文件报 UnicodeDecodeError 的问题处理
这很可能是因为在 Windows 系统运行时,没有显式地指定 configparser 包的编码,导致 configparser 在调用 Python 内置函数 open 时未指定 encoding 参数,进而导致自动读取了 Windows 的系统默认编码 GBK,进而因为 GBK 无法解析包含 UTF - 8 的中文的配置文件导致报错。指定 UTF - 8 未默认编码未生效。通过在命令提示符中执行。原创 2023-10-09 11:37:40 · 521 阅读 · 0 评论 -
Python 分析案例|数据采集案例:B 站 UP 主发布视频信息采集
实现目标本案计划实现:通过网络请求,获取UP主发布的所有视频的信息(包括视频标题、视频播放次数),并输出到控制台。【案例应用技巧】GET请求(requests):headers浏览器抓包(Chrome)翻页Json解析(json)实现过程当前爬虫的实现流程如下:确定数据所在的Url,以及控制翻页的参数执行网页请求并解决请求中出现的问题Json解析实现翻页下面我们按着以上步.原创 2020-05-29 11:49:40 · 1428 阅读 · 1 评论 -
Python 分析案例|数据采集案例:豆瓣电影 TOP250 采集
实现目标本案计划实现:通过网络请求,获取豆瓣电影TOP250的数据,并存储到Json文件中。案例应用技巧:GET请求(requests):headers翻页网页解析(BeautifulSoup)实现过程总体来说,简单的单线程爬虫的实现流程如下:确定数据所在的Url,以及控制翻页的参数执行网页请求并解决请求中出现的问题解析网页,获取格式化数据实现翻页存储数据下面我们按着以上步骤来依次完成。确定数据所在Url在Chrome浏览器中.原创 2020-05-28 12:31:13 · 1955 阅读 · 1 评论 -
Python 分析案例|文本整理样例:近体诗格律分析
在这个案例中,我们将要实现近体诗格律的分析。具体的,我们从如下角度分析近体诗的格律:诗句数量、诗句字数是否符合近体诗的要求,即是否为五绝、七绝、五律、七律中的一种(暂不考虑排律、六言的情况)是否押了平声韵,所押的韵脚是什么平水韵部(暂不考虑首句押韵的情况)诗句是否有拗句,是否存在孤平和拗救的情况诗文是否符合对黏的要求如果当时该诗不符合第1个或第2个要求,则不再分析;如果符合第1个和第2个要求.原创 2020-05-26 18:49:53 · 2344 阅读 · 3 评论 -
Python 分析案例|数据采集案例:猫眼网播热度采集
作者:长行时间:2020.05.26Github原文: Week-04/Example-0402实现目标本案例通过图文详细介绍使用Selenium请求和解析网页方法,其目标实现的需求为:通过Selenium,获取猫眼中实时网播热度的数据,并打印到控制台中。案例应用技巧:SeleniumSelenium安装方法通过pip安装selenium模块,安装命令:pip install selenium下载与Chrome浏览器版本配套的chromedriver可执行文件,下载地址:.原创 2020-05-26 13:22:36 · 622 阅读 · 1 评论 -
Python 分析样例|数据采集案例:微博热搜榜采集
实现目标本案例通过图文详细介绍网络请求和解析的方法,其目标实现的需求为:通过网络请求,获取微博热搜榜中的前50条热搜的关键词,并将结果打印到控制台中。实现过程总体来说,数据采集爬虫的实现过程包括如下步骤:确定数据所在的Url执行网页请求并解决请求中出现的问题解析网页,获取格式化数据存储数据(当前案例中不需要)下面我们按着以上步骤来依次完成。确定数据所在Url打开微博热搜榜,即Url为:http原创 2020-05-25 13:19:29 · 2735 阅读 · 1 评论 -
Python 实例|24 点纸牌游戏算法
对于任意给定的四张扑克牌,计算是否有赢得24点游戏的方法(即使用加、减、乘、除四则运算凑成24的方法);如果有的话,列出所有可能的方法。【24点游戏规则】在大小王以外的52张牌中,任意抽取其中4张牌。如果通过加、减、乘、除四则运算(可加括号)的方法,将抽到的4张牌算成24,则为胜利;每张牌都必须使用,且只能使用一次。第一种解法依据游戏规则,我们可以想到如下解决思路:使用枚举的方法,.原创 2020-05-26 15:30:07 · 3108 阅读 · 3 评论 -
Python类与对象引用案例:地名查询
Python基础算法案例:地名查询工具作者:长行时间:2020.05.24目标要求解析“中国地名表.json”,并实现如下功能:根据给定的中国地名,判断该地名是否存在;若地名不存在,返回None;若地名存在,则给出该地名所属的上级地名和该地名包含的下级地名。例如,给出“秦皇岛市”,返回其上级地名“河北省”以及其下级地名“海港区”、“山海关区”等。对于给定的中国地名A,判断该地名是否存在;若地名不存在,返回None;若地名存在,则返回该地名所属的各级上级地名。例如,给出“海港区”,返回其所有原创 2020-05-24 14:30:25 · 1043 阅读 · 2 评论 -
Python 分析样例|文本整理案例:《全唐诗》文本整理
在整理《全唐诗》的文本之前,我们首先需要完成以下两个步骤:确定需求了解文本在完成以上步骤后,我们开始实际着手整理文本,在整理的过程中大体上也包含两个流程:文本解析结果输出全唐诗文本语料在“全唐诗.txt”文件中,请参考语料阅读以下内容。确定需求我们计划将《全唐诗》中的每一首诗的各种信息分别提取出来,并转存为csv的形式。根据对文本的初步了解,我们发现我们需要提取的信息(即绝大部分诗文都包含的共性信息)包括:诗文的所属的卷编号(后简称卷编号)诗文的在当前卷中的序号(后原创 2020-05-15 14:55:15 · 4437 阅读 · 4 评论 -
Python 语法特性|错误和调试
在我们的程序运行中,不可避免地会出现各种各样的错误。造成这些错误的原因也多种多样,可能是因为代码逻辑存在疏漏,某一种情况我们没有考虑到;也可能是因为用户的特殊操作,使我们的程序陷入了未曾涉及的场景……错误处理当Python将错误信息输出到控制台后,我们首先需要定位到错误发生的位置。def test(name): return int(name)test("cbekd")例如,以上代码运行时会出现如下错误信息:Traceback (most recent call last): Fi原创 2020-05-15 14:55:54 · 395 阅读 · 1 评论 -
Python 实例|使用 openpyxl 读写 Excel
Openpyxl是一个用于读写Excel2010文件的Python第三方包。相较于xlrd,虽然没有与pandas的有效交互,但是在样式设置上的功能更加强大。其pip安装命令如下:pip install openpyxlOpenpyxl的整体逻辑是:首先通过打开或创建的方法,实例化Excel的工作簿文件(Workbook类);接着再通过打开或创建的方法,实例化Excel的工作表(Worksheet类);然后通过坐标或其他方式定位到一个或多个单元格执行操作;最后,将操作结果存入文件中。工作簿层级操作原创 2020-05-15 14:53:33 · 1268 阅读 · 1 评论 -
Python 语法特性|Python 常用内置函数
到目前为止(3.8.2),Python解释器共计提供了69个内置函数和类型,这些函数可以在任意条件下被调用。例如我们之前用来查询变量类型的type()就是一个内置函数。type()实际上是类的构造方法,其返回值是一个type对象,大家在没有理解类与对象之前,也可以先简单地将其理解为一个函数。下面我们来详细介绍一下在初学阶段比较常用的内置函数,在描述函数的功能时也主要以初学阶段可以用到的功能为主。1. 数据类型相关首先,我们先来了解一下与数据类型相关的内置函数。刚才用作举例的type()方法就是与原创 2020-05-15 14:53:00 · 527 阅读 · 1 评论 -
Python 语法特性|注释
代码中的注释,在程序执行时会被忽略,主要是为了向协作者和未来的自己说明代码的思路、功能。我们在注释时应假设阅读者比我们的Python水平要高,阅读注释只是为了更快地理解代码要做什么,切忌直接描述代码。另外,注释也不宜过多,一般占到源代码的1/3左右是比较合适的。在Python中,主要有两种注释的方法,分别为单行注释和多行注释。单行注释使用#标记,可以单作一行,也可以用在其他行的结尾,这类注释主要用来解释一段代码(单作一行的情况)或用来解释该行代码的作用。为了提高可读性,放在行尾的注释距离代码至少间隔2个原创 2020-05-14 17:15:29 · 304 阅读 · 0 评论 -
Python 语法特性|运算符
算术运算符在以上的内容中,我们已经涉及了加、减、乘、除、取余、取模、幂运算共7种运行。这类用于运算的符号叫做“运算符”,之前我们涉及的7种运算符都属于“算术运算符”。运算符功能+数字+数字=求和;字符串+字符串=按前后顺序合并字符串-数字-数字=计算差值*数字*数字=求积;字符串*数字=重复若干次的字符串/数字/数字=求商%数字%数字=取余(除法的余数部分)//数字//数字=取模(商的整数部分)**数字**数字=幂运算(前数的后数次幂原创 2020-05-14 17:11:28 · 5618 阅读 · 6 评论 -
Python 语法特性|变量的基本操作
下面,我们了解一下数值型变量和字符串变量的基本操作。数值变量的基本操作对于数值变量。我们首先,数值变量可以直接进行加减乘除的运算,也可以通过括号来调整计算顺序。a = 3b = 5print(a + b) # 输出值: 8print(b / a) # 输出值: 1.6666666666666667print((a + b) * b) # 输出值: 40有的时候,我们不需要得到小数形式的商,而是需要得到商的整数,也就是“取模”,可以使用“//”运算符;又或者只需要得到余数,也就是“取余原创 2020-05-14 17:10:55 · 347 阅读 · 1 评论 -
Python 语法特性|变量
使用变量此前,我们已经了解了控制台输入和输出的方法,通过以下代码,我们可以实现了读取用户想到的数字并输出。number = input("你想到了什么数字? ")print("你想到的数字是:", number)在这段代码中:第一行我们使用input()函数从控制台读取了用户输入的内容,并将其存入了名为number的变量中,而在第二行中,我们使用print()函数将number变量的值输出到了控制台中。我们通常将第一行对number变量的操作称为“变量赋值”,将第二行对number变量的操作称为原创 2020-05-14 17:10:24 · 410 阅读 · 1 评论 -
Python 文档注解|69 个内置函数功能汇总说明
Python到目前为止(3.8.2)共计提供了69个内置函数,这些函数可以在任何条件下被直接调用。官方文档地址:https://docs.python.org/zh-cn/3.8/library/functions.html在官方文档中,各个内置函数依据字母顺序进行排列,学习查询相对不便。下面,我们依据内置函数的类型,对常用的内置函数进行整理学习。在学习的过程中,我们不需要记住每一个内置函数的名字及其对应功能,但是尽可能在脑海中形成一个什么样的功能可以直接通过内置函数实现的印象。在实际操作时,可以原创 2020-05-15 14:52:20 · 1085 阅读 · 1 评论 -
Jupyter|Nbextensions插件功能大全
Nbextensions简介Nbextensions软件包是Jupyter非官方扩展包的集合,可以为Jupyter提供很多实用的功能。这些扩展包大部分为Javascript编写,在运行Jupyter浏览器时被本地加载。文档地址:https://jupyter-contrib-nbextensions.readthedocs.io/en/latest/index.htmlNbextensions扩展包插件的安装方法关闭Jupyter,在命令提示符(cmd)中执行如下命令:pip install原创 2020-05-14 17:08:01 · 5237 阅读 · 1 评论 -
Python|数据挖掘领域初学建议安装的第三方包
数据挖掘领域推荐安装的Python第三方包:requests : 网页请求urllib/urllib3 : 网页请求beautifulSoup4 : dom结构解析scrapy : 爬虫框架selenium : Web应用测试numpy : 数学方法pandas : 数据分析包scipy: 算法包matplotlib : 绘图mysql-connector : MySQL数据库django : Python Webpillow : 图形处理库opencv-python : 计算机原创 2020-05-14 17:05:59 · 300 阅读 · 2 评论 -
Python 实例|全角、半角转换
【代码】Python 实例|全角、半角转换。原创 2023-09-26 18:28:19 · 403 阅读 · 0 评论 -
Python 性能优化|大量使用正则匹配的优化方法
使用 30 - 40 个正则表达式,逐个匹配了 3200 万条字符串。随着不断增加正则匹配式的数量,性能逐渐下降。在使用 re 模块前,我们已经阅读了文档,了解到对于频繁使用的正则表达式,将其使用。初始化为正则表达式对象可以显著地提高性能。但是,抽取少量样本,使用 cProfile 统计后,仍然发现。更快的方法是,直接调用正则表达式对象的。等方法读取缓存的过程是一样的。通过这块源码,我们了解到,先。解析,将正则表达式对象传给。等方法,与将字符串传给。方法几乎不占用时间。原创 2023-09-26 14:24:45 · 717 阅读 · 0 评论 -
Python 实例|中国地名类
在构造这个类时,需传入参数data_path,该参数表示对应的 Json 文件所在位置。原创 2023-09-26 13:27:50 · 570 阅读 · 0 评论 -
Python 实例|前缀树(Trie)
【代码】Python 实例|前缀树(Trie)原创 2023-09-26 13:26:31 · 97 阅读 · 0 评论 -
Python 实例|清理包含 HTML 编码和 HTML 标签的文本
【代码】Python 实例|清理包含 HTML 编码和 HTML 标签的文本.md。原创 2023-09-20 08:23:15 · 165 阅读 · 0 评论 -
Python|正则表达式操作(re 模块)用法讲解及各函数样例
在 Python 的正则表达式 re 包中,有如下 4 个扫描正则表达式 pattern 是否与字符串 string 中的某个位置匹配,并返回或生成匹配结果的 Match 对象的函数。以字符串列表或字符串元组列表的形式,返回 pattern 在 string 中的所有重叠匹配。匹配到的最后一个命名组的名称。如果第 2 个子组没有匹配到,但第 3 个子组匹配到的话,会返回第 3 个子组的名称。需要注意的是,对于这 4 个函数中,在字符串中没有找到与模式匹配的位置,与在某个位置上找到零长度的匹配是不一样的。原创 2023-09-19 08:30:42 · 395 阅读 · 0 评论 -
Python 实例|pyhive|连接到 Hive 查询数据
【代码】Python 实例|pyhive|连接到 Hive 查询数据。原创 2023-09-18 23:05:02 · 190 阅读 · 0 评论