python学习之5个让日常编码更方便简单的库

news2024/12/26 11:26:48

今天为大家分享 5 个让日常编码更简单的 Python 库,全文3900字,阅读15分钟。

一、sh

https://github.com/amoffat/sh

如果曾经在 Python 中使用过 subprocess 库,那么我们很有可能对它感到失望,它不是最直观的库,可能还有些复杂,并且很难处理底层系统调用的输出。

但是 sh 库结束了低效使用子进程的痛苦,使用 sh 库,我们几乎可以进行任何想要的系统调用,就好像它是一个普通函数一样,这使得执行这些调用变得更加简单和直观。我们可以像使用普通 Python 函数一样使用它们。

sh 库的一些常用功能介绍:

运行命令:sh 库可以使用类似函数调用的方式运行命令。例如,可以使用 sh.ls() 来运行 ls命令。可以通过传递参数来指定命令的选项和参数。

获取输出:sh 库可以获取命令的输出结果。可以使用 .stdout 属性来获取标准输出,.stderr 属性来获取标准错误输出。

管道和重定向:sh 库支持管道和重定向操作。可以使用 | 符号来连接多个命令,使用 > 和 >> 符号来重定向输出到文件。

错误处理:sh 库可以捕获命令执行时的错误,并提供异常处理机制。可以使用 .stderr() 方法来检查命令是否产生了错误输出。

命令别名:sh 库支持为常用的命令创建别名。可以使用 .Command() 方法来创建别名,并在后续的调用中使用该别名来运行命令。

环境变量:sh 库可以设置和获取环境变量。可以使用 .export() 方法来设置环境变量,使用 .env() 方法来获取环境变量的值。

运行脚本:sh 库可以执行脚本文件。可以使用 .bash() 方法来执行 Bash 脚本,使用 .python() 方法来执行 Python 脚本。

并发执行:sh 库支持并发执行多个命令。可以使用 .join() 方法来等待多个命令的完成。

下面是使用 ls 从 sh 获取目录内容的示例:
在这里插入图片描述
我们所要做的就是像导入普通函数一样导入系统调用,最好的部分是所有函数都是动态生成的,因此我们应该可以访问底层系统中已经存在的大多数二进制文件。

下次当我们需要进行一些系统调用时,可以尝试使用 sh。

二、rstr

https://github.com/leapfrogonline/rstr

如果我们需要一些易于访问的随机数据的次数是无法计算的,无论是为代码构建测试、填充缓冲区还是用随机数据模糊代码以查看它在哪里中断,rstr 库都能满足我们的需求。

这个方便的小库可让我们生成不同类型的随机字符串数据,它可以生成字母数字数据、特殊符号,甚至使用正则表达式构建复杂的数据模式。

1、生成随机字符串:可以使用 rstr.xeger 方法生成满足指定正则表达式的随机字符串。例如,生成一个包含三个小写字母的随机字符串可以使用以下代码:

import rstr

random_string = rstr.xeger(r'[a-z]{3}')
print(random_string)

输出可能是:“abc”

2、正则表达式匹配:可以使用 rstr.match 方法检查字符串是否与指定的正则表达式匹配。例如,检查一个字符串是否匹配一个包含三个小写字母的正则表达式可以使用以下代码:

import rstr

result = rstr.match(r'[a-z]{3}', 'abc')
print(result)  # True

输出为 True,表示匹配成功。

3、正则表达式替换:可以使用 rstr.replace 方法将满足指定正则表达式的字符串替换为其他字符串。例如,将字符串中的所有小写字母替换为大写字母可以使用以下代码:

import rstr

replaced_string = rstr.replace(r'[a-z]', 'ABC', 'abcde')
print(replaced_string)

输出为:“ABCABCABCABCe”

4、例如,假设我们想要一串一定长度的数字。我们可以使用下面的 rstr 片段来完成此操作:
在这里插入图片描述
这将打印出随机选择的 10 位数字,便利!

三、Ipython

https://ipython.org/

IPython 不是一般的模块,这是一个令人难以置信的交互式 shell 模块,可增强我们的 Python REPL。

介绍一些 Ipython 常用功能:

自动补全:在输入对象、方法或变量名时,按下 Tab 键可以自动补全或列出可用的选项。
内省功能:在变量名后面加上 ?,可以查看该变量的文档字符串。在函数名后面加上 ??,可以查看函数的源代码。
魔法命令:以 %开头的命令称为魔法命令,可以执行一些特殊的操作,如 %run 运行脚本文件、%timeit 测试代码运行时间等。
输入/输出历史:使用变量_ 和 __ 可以分别获取上一条和上上条指令的输出结果。还可以使用 %history 查看历史输入命令。

IPython 为交互式 Python shell 带来了一套很棒的功能,例如自动完成、彩色输出和运行细节。
在这里插入图片描述
使用 IPython,引入类和检查函数变得容易得多。命令历史更易于导航,并且我们还可以获得类似于 Zsh 的强大的选项卡完成和自动完成功能。

四、Humanize

https://github.com/jmoiron/humanize

这个库实在令人兴奋,它将采用日期、时间和数字等数字,并将它们“人性化”成人类可读的短语,如“三点钟”或“100 亿”,更加优秀的是它会自动执行此操作!

naturaltime:将日期时间转换为易于阅读的相对时间表示。例如,将当前时间减去一小时,结果可能是“1小时前”。

naturalday:将日期转换为易于阅读的相对日期表示。例如,将当前日期减去一天,结果可能是“昨天”。

intcomma:将整数格式化为带有千位分隔符的字符串。例如,将数字1000格式化为“1,000”。

intword:将大整数格式化为带有单位的字符串。例如,将数字1000000格式化为“1 million”。

apnumber:将整数转换为英文序数词的表示形式。例如,将数字5转换为“fifth”。

ordinal:将整数转换为英文序数词的表示形式。例如,将数字5转换为“5th”。

fractional:将小数转换为分数的表示形式。例如,将小数0.5转换为“1/2”。

例如,假设我们正在处理一堆非常大的数字(想想数百万和数十亿),并且希望以更友好的方式向用户展示它们。这个库可以做到这一点,甚至不费吹灰之力:
在这里插入图片描述
Output:

在这里插入图片描述
人性化模块也非常适合计算我们的股市收益(或损失……)并以易于阅读的方式呈现。

五、Emoji

https://github.com/carpedm20/emoji/

最后我们介绍一个有趣的库,这个库是将表情符号添加到文本中。没有人愿意将表情符号直接复制并粘贴到他们的代码中,或者在混乱的字符代码中摸索。

1、将Unicode字符串转换为Emoji表情符号 可以使用unidecode库将Unicode字符串转换为ASCII字符串,然后使用emoji库将ASCII字符串转换为Emoji表情符号。
示例代码:

import emoji
from unidecode import unidecode

# Unicode字符串
text = "I love 🍕"
# 转换为ASCII字符串
text = unidecode(text)
# 转换为Emoji表情符号
text = emoji.emojize(text)
print(text)

输出结果:
I love 🍕

2、将Emoji表情符号转换为Unicode字符串 可以使用emoji库将Emoji表情符号转换为Unicode字符串。
示例代码:

import emoji

# Emoji表情符号
text = "I love 🍕"
# 转换为Unicode字符串
text = emoji.demojize(text)
print(text)

输出结果:
I love 🍕

3、检查字符串中是否包含Emoji表情符号 可以使用emoji库的is_emoji()方法判断一个字符是否是Emoji表情符号。
示例代码:

import emoji

# 字符串
text = "I love 🍕"
# 检查是否包含Emoji表情符号
for char in text:
    if emoji.is_emoji(char):
        print(f"Found emoji: {char}")

输出结果:
Found emoji: 🍕

4、以下是如何在代码中添加眨眼表情符号的示例:

在这里插入图片描述
这将打印出实际的😉表情符号,现在当用户在控制台中出错时,就可以向他们眨眼了!

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

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

相关文章

Centos7安装docker 和docker-compose记录(0报错顺利安装)

文章目录 前言一、docker的安装二、docker-compose的安装总结 前言 我居然没有记录过Centos7安装docker的笔记,真是不可思议。每次vps安装docker都要看网上的文章,而且都非常坑,方法千奇百怪,最后还是决定自己来记录一个完整又方…

Jupyter notebook怎么设置自动跳转问题

1.点击开始,就可以看到Jupyter,然后点击 2.结果就这样: 3你可以复制地址到浏览器,结果: 但是这么做很麻烦,所以有没有更好的办法呢?当然有下面就开始介绍 1.打开cmd(winr,输入cmd),输入以下命令…

第二证券:突发!A股T+0?刚刚,紧急回应!

沪深生意所急迫回应 6日,商场传出一个消息,传延伸A股生意时刻和部分票可日内T0一次。一个版本是提早至9点,然后下午延伸至15:30,另一个版本是上午推延至12点,下午延伸至16:00。 7日&#xff0…

TimeWise-Jira工时管理插件6.0.0发布!对比测评某知名工时插件,谁的数据处理性能更胜一筹?

近期,龙智自研插件TimeWise for Jira(Jira工时管理插件)发布了重要更新——6.0.0版本。这次升级主要针对报表性能做出了优化与提升。 对于企业级应用而言,具高效处理大规模数据的能力是最为关键。龙智深谙国内用户需求&#xff0…

阿里云关系型数据库RDS详细介绍PolarDB_MySQL_MariaDB_SQL Server_PostgreSQL

阿里云RDS关系型数据库大全,关系型数据库包括MySQL版、PolarDB、PostgreSQL、SQL Server和MariaDB等,NoSQL数据库如Redis、Tair、Lindorm和MongoDB,阿里云百科分享阿里云RDS关系型数据库大全: 目录 阿里云RDS关系型数据库大全 …

【Axure高保真原型】自适应多行输入框

今天和大家分享自适应多行文本框的原型模板,我们可以在输入框里输入文字,随着文字的数量,输入框的高度也会自动调整……具体效果可以打开下方原型地址体验或者点击下方视频观看 【原型效果】 【Axure高保真原型】自适应多行输入框 【原型预览…

重装系统Win10专业版步骤和详细教程

在Windows 10专业版中,使用一键重装系统能够迅速恢复系统到出厂默认状态,以便重新开始。一键重装系统的步骤相对简单,但确保备份重要文件和软件是重要的一步。本文将详细介绍如何一键重装系统Win10专业版的步骤和教程,确保您能轻松…

智能穿戴领域,健康鞋步力宝品牌引领新商业模式发展

智能时代正在将我们带向一个从学习驱动到全面普及的新境界。这个趋势的深远影响不仅改变了我们的生活方式,更改变了我们对智能的理解。当今的智能穿戴,已经越来越成为更多人日常生活的必需品,不论是日常佩戴无感成为腕上伴侣,还是…

【Java】Scanner.nextLine() 返回空行/不起作用(吸收换行符)

解决方法直达 问题描述 使用 Java 的 Scanner 类来读取数据的时候容易遇到的一个坑是 nextLine() 莫名其妙地就无法使用了。 具体表现为:好像 nextLine() 没执行就直接返回空字符串了。 例如 Scanner scanner new Scanner(System.in); System.out.println(&quo…

【three.js】简介和本地部署

跟着b站大佬学习three.js,让你实现3d前沿技术不是梦! 由于访问three.js官网是国外的网站,非常慢Three.js – JavaScript 3D Library 因此我们可以访问b站大佬在国内搭建好的本地three.js官网,大家访问如下链接即可,…

git项目删除业务代码、并清除所有提交记录,以此为基础创建出一个干净仓库、再另建一个远程代码库推上去

1、先把项目的.git文件夹删除,里面全是之前项目的提交记录 2、在本地项目地址启动git Bash Here后 执行命令 git remote add origin 远程仓库地址 注意后面接的是远程仓库地址 远程仓库要提前把代码块建好 3、如果出现报错:Updates were rejected because the remote conta…

论文阅读--On optimization methods for deep learning

深度学习的优化方法研究 论文信息:Le Q V, Ngiam J, Coates A, et al. On optimization methods for deep learning[C]//Proceedings of the 28th International Conference on Machine Learning, ICML 2011, Bellevue, Washington, USA, June 28 - July 2, 2011. …

JAVA NIO深入剖析

4.1 Java NIO 基本介绍 Java NIO(New IO)也有人称之为 java non-blocking IO是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方…

【已解决】Python读取sql数据,报错:Not an executable object,解决方案

【已解决】Python读取sql数据,报错:Not an executable object,解决方案 1.报错内容: 通过Python连接sql,读取sql中数据,报错:Not an executable object。具体代码及报错内容见下: …

为什么mac上有的软件删除不掉?

对于Mac用户来说,软件卸载通常是一个相对简单的过程。然而,有时你可能会发现某些软件似乎“顽固不化”,即使按照常规方式尝试卸载,也依然存在于你的电脑上。这到底是为什么呢?本文将探讨这一问题的可能原因。 1.卸载失…

实用指南:如何解决企业组网中网络卡顿问题?

随着互联网的发展,企业逐步将办公应用系统部署在内网服务器或者上云了,导致很多日常工作都需要网络才能访问。员工在工作的时候网络不给力,卡顿半天也打不开,非常影响工作效率和心情。 在企业组网过程中,网络卡顿现象的…

解决mysql去掉字段空格:中间空格,左侧空格,右侧空格,两端空格,水平制表符(tab键或者\t)空格,换行键(\n)空格,回车键(Enter键)空格

1. 复现错误 今天,查看我禅道上的日志,发现有这个错误: 数据库查询处的字段,存在空格,那么,怎么解决这个问题呢? 2. 解决思路 首先打开控制台,查看所调用的接口。 通过接口找到对应…

线程的概念及使用

1.C11 Thread线程库的使用 本文详细介绍C11 线程库的基本使用,包括如何创建线程、启动线程、等待线程完成、如何分离线程。 创建线程 线程的概念及使用 线程:进程内一个相对独立的、可调度的执行单元,是系统独立调度和分派CPU的基本单位指运行中的程序…

再创佳绩!移远通信RG500U-EA 5G模组获得全球首个紫光展锐V510平台GCF 认证

近日,移远通信工规级5G模组RG500U-EA顺利通过GCF认证,成为全球首款通过该认证的基于紫光展锐V510平台的5G模组。 GCF认证是一种国际性的产品一致性认证,该认证的通过,表明移远通信RG500U-EA模组满足不同运营商的规范要求&#xff…

CUDA学习笔记1——核函数与线程

CUDA安装并配置环境后&#xff0c;使用VS新建工程时会出现对应选项&#xff1a; CUDA核函数调用 CUDA核函数必须用限定词 global 修饰&#xff0c;返回类型必须为void&#xff0c;二者次序随意。函数名与()之间用三括号<<<网格大小&#xff0c;线程块大小>>&…