Python小知识

个人学习笔记,用于记录使用过程中好用的技巧、好用的库。

1 小知识

1.1 相对路径

在这里插入图片描述

1.2 打包Exe文件

命令:

pyinstaller -F main.py

其中-F:覆盖之前打包的文件
mian.py:需要打包的Python文件
PS:使用pyinstaller 5.10.0以上的版本,低于5.10.0以下会出现一些稀奇古怪的问题(Python版本为3.10)

1.3 字符串对齐ljust()|rjust()|center()

在生成C代码时,需要对齐备注等的要求,使用较多。
具体参考:https://blog.csdn.net/qdPython/article/details/111559495

1.4 正则表达式

1.4.1 普通字符

在这里插入图片描述在这里插入图片描述

1.4.2 非打印字符

在这里插入图片描述

1.4.3 特殊字符

在这里插入图片描述

1.4.4 限定符

限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。有 * 或 + 或 ? 或 {n} 或 {n,} 或 {n,m} 共6种。
在这里插入图片描述
参考资料:https://www.runoob.com/regexp/regexp-syntax.html

1.5 除法取整

1.5.1 向下取整

x = 1
y = 2
r = x // y
输出:0

1.5.2 向下取整

import math
x = 1
y = 2
math.ceil(x / y)
输出1

1.6 替换字符 - 删除指定字符

Python replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。

1.6.1 语法

str.replace(old, new[, max])

1.6.2 参数

old -- 将被替换的子字符串。
new -- 新字符串,用于替换old子字符串。
max -- 可选字符串, 替换不超过 max 次

1.6.3 返回值

返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。

1.6.4 实例

ss = 'old old string'
ret = ss.replace('old', 'new', 1)
print(ret)

输出

new old string

参考资料:https://www.runoob.com/python/att-string-replace.html

1.7 打印进度条

import sys
import timedef progress_bar(finish_tasks_number, tasks_number):"""进度条:param finish_tasks_number: int, 已完成的任务数:param tasks_number: int, 总的任务数:return:"""percentage = round(finish_tasks_number / tasks_number * 100)print("\r进度: {}%: ".format(percentage), "▓" * (percentage // 2), end="")sys.stdout.flush()if __name__ == '__main__':for i in range(0, 101):progress_bar(i, 100)time.sleep(0.05)

效果图
请添加图片描述

参考资料:https://blog.csdn.net/TaoismHuang/article/details/120747536

2 库

2.1 parsel

parsel这个库可以解析HTML和XML,并支持使用Xpath和CSS选择器对内容进行提取和修改,同时还融合了正则表达式的提取功能。parsel灵活且强大,同时也是python最流行的爬虫框架Scrapy的底层支持。

CSS选择器使用

提取CSDN一个页面下面博客的所有链接。具体步骤如下:

①右键,选择“检查”,查看网页代码
在这里插入图片描述
②复制第一篇文件链接,在网页代码中搜索,提取上一级标签的关键字,这里是“column_article_list”
在这里插入图片描述
③复制上一级标签关键字,在搜索栏输入“.column_article_list”搜索
这里只会有唯一的一个匹配项
在这里插入图片描述
使用空格取下级标签,例如“.column_article_list a”表示取column_article_list下面的a标签,如果还需要往下取,继续加“空格+标签名”
在这里插入图片描述
④回到代码
先使用parsel.Selector将响应的数据转换为一个对象,在对象中在使用css选择题提取内容。
这里“::attr(href)”表示去a标签的href属性
.getall():提取整个对象中符合要求的数据
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/178507.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何优化索引?

前缀索引 这个操作是为了减少索引长度,即占用空间的。这样一个页可以多存一些索引,查找时候就会更快了。但是前缀索引有俩缺点,一个是ORDER BY或GROUP BY时候没法用,另一个是没法用做覆盖索引(因为索引本来自己都不全…

计算机网络408

一:计算机网络体系结构 1.计网的概念,组成,功能和分类 一:计算机网络的发展 (3)从功能组成视觉看:分为资源子网和通信子网 2.计网性能指标

性能自动化测试?

一、思考❓❔ 1.什么是性能自动化测试? 性能 系统负载能力超负荷运行下的稳定性系统瓶颈 自动化测试 使用程序代替手工提升测试效率性能自动化 使用代码模拟大批量用户让用户并发请求多页面多用户并发请求采集参数,统计系统负载能力生成报告 2.Python中的性能…

RabbitMQ工作模式2 整合springboot 和MQ高级特性

RabbitMQ工作模式 1.路由模式 创建交换机 , 连接队列 (生产者) public class MyTestExDirect {Testpublic void bbb() throws IOException, TimeoutException {ConnectionFactory connectionFactory new ConnectionFactory();//连接mqconnectionFactory.setUsername("…

可信区块链运行监测服务平台(TBM)发展研讨会在北京召开

2023年11月23日,由中国信息通信研究院、中国移动通信集团设计院有限公司、区块链服务网络(BSN)发展联盟共同主办的“可信区块链运行监测服务平台(TBM)发展研讨会”在北京成功举行。会议围绕区块链的监测与治理&#xf…

vatee万腾的科技征途:Vatee数字化力量的新视野

在科技的浪潮中,Vatee万腾正展开一场引人注目的科技征途,以其独特的数字化力量描绘出一片新的视野。这不仅是一次技术的升级,更是一场对未来的全新探索,为我们带来了前所未有的数字化时代。 Vatee万腾以其卓越的技术实力和前瞻性的…

springboot实现数据脱敏

springboot实现数据脱敏 怎么说呢,写着写着发觉 ”这写的什么玩意“ 。 总的来说就是,这篇文章并不能解决数据脱敏问题,但以下链接可以。 SpringBoot中利用自定义注解优雅地实现隐私数据脱敏 然后回到本文,本来是想基于AOP代理&am…

PHP众筹系统源码+支持报名众筹+商品众筹+无偿众筹+市面上所有的众筹模式 附带完整的搭建教程

大家好啊,罗峰今天来给大家分好用的源码系统了。今天要给大家分享的是一款PHP众筹系统源码。众筹作为一种新型的融资方式,逐渐在市场上占据了重要的地位。从公益众筹到商品众筹,再到股权众筹,各种众筹模式层出不穷。然而&#xff…

ELK日志系统

(一)ELK 1、elk:是一套完整的日志集中处理方案,由三个开源的软件简称组成 2、E:ElasticSearch(ES),是一个开源的,分布式的存储检索引擎(索引型的非关系型数…

后端整合Swagger+Knife4j接口文档

后端整合SwaggerKnife4j接口文档 接口文档介绍 什么是接口文档:写接口信息的文档,条接口包括: 请求参数响应参数 错误码 接口地址接口名称请求类型请求格式备注 为什么需要接口文档 who用?后端提供,前后端都需要使用…

ESXi 添加虚拟闪存 无可选设备问题排查

虚拟内存是计算机系统中的一种技术,它可以将计算机硬盘的一部分空间作为临时存储器来使用。当计算机的物理内存(RAM)不足时,操作系统可以将部分数据从内存移至硬盘的虚拟内存空间中,以释放内存供其他程序使用。虚拟内存…

uniapp基础-教程之HBuilderX配置篇-01

uniapp教程之HBuilderX配置篇-01 为什么要做这个教程的梳理,主要用于自己学习和总结,利于增加自己的积累和记忆。首先下载HBuilderX,并保证你的软件在C盘进行运行,最好使用英文或者拼音,这个操作是为了保证软件的稳定…

羊大师提示,别让坏习惯影响生活

羊大师提示,别让坏习惯影响生活 拖延是人们常常会遇到的一种坏习惯,它不仅浪费时间,还会对生活、工作和学习造成负面影响。为了改变这种坏习惯,我们需要采取一系列的措施,从根本上改变自己的生活方式。下面小编羊大师…

bat脚本执行py文件

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

你知道如何使用队列实现栈吗?(C语言)

这时一道非常经典的题型,因为栈和队列的性质是相反的,队列的数据是先入先出,栈的数据是后入先出,那么怎样使用两个队列实现栈呢? 225. 用队列实现栈https://leetcode.cn/problems/implement-stack-using-queues/ 这是…

安卓开发学习---kotlin版---笔记(一)

Hello word 前言:上次学习安卓,学了Java开发,简单的搭了几个安卓界面。这次要学习Kotlin语言,然后开发安卓,趁着还年轻,学点新东西,坚持~ 未来的你会感谢现在努力的你~ 主要学习资料&#xff1a…

leetcode算法之字符串

目录 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 最长公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//法一&#xff1a;两两比较string ret strs[0];for(int i1;i<strs.size();i){ret f…

NocoBase企业级低代码开发平台有什么优势?

企业级低代码开发平台&#xff0c;作为一种新兴的技术解决方案&#xff0c;正逐渐在企业中受到越来越多的关注和青睐。它以其高效、灵活的特性&#xff0c;为企业的创新提供了更快速、更可持续的支持和推动。 低代码开发平台是一种以图形化界面为基础&#xff0c;结合拖拽式编…

Qt右键菜单+动作+qss案例

Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//设置界面颜色样式this->setStyleSheet("background-color:rgb(54,54,54)");//创建文件菜单QMenu *fileMenuItems new QMenu;//菜单添加iconfileMenuItems->se…

如何根据接口文档,轻松快速的模拟接口服务?

什么是WireMock? WireMock 是一个Http 模拟服务,其核心也是一个web服务,WireMock主要是为特定请求提供固定的返回值。 WireMock可以作为单独进程启动,模拟一个WEB服务器,提供一些API访问,并返回特定的返回值。也可以作为第三方库在项目中使用。 如何使用 standalone方…