5个超实用的Python代码片段

2023-09-20 07:04:17

963dade754c3a9b077d47154ab2f5012.png

迷途小书童

读完需要

7

分钟

速读仅需 3 分钟

本篇收集了 5 个常用的 Python 代码片段,非常实用,可以帮助我们更高效的编写代码,实现我们想要实现的功能。

1

   

密码生成器

import random
import string
total = string.ascii_letters + string.digits + string.punctuation
length = 16
password = "".join(random.sample(total, length))
print(password)

这段代码用来生成一个强度较高的随机密码。导入随机数 random 模块和字符串 string 模块,在 total 变量中合并了所有字母、数字和特殊符号,然后设置密码长度 length 为 16 个字符,使用 random.sample 从 total 中随机采样 length 个字符,最后再用 join 拼接成一个字符串,就是生成的密码。

代码的执行结果为

rpI\2bPduJEfz{:~

2

   

低电量通知

import psutil


battery = psutil.sensors_battery()
plugged = battery.power_plugged
percent = battery.percent


if percent <= 30 and plugged!=True:


    from pynotifier import Notification


    Notification(
        title="Battery Low",
        description=str(percent) + "% Battery remain!!",
        duration=5,  # Duration in seconds


    ).send()

这段代码使用 psutil 和 pynotifier 模块实现了一个低电量提醒的桌面通知。导入需要的模块 psutil 和 pynotifier,使用 psutil 获取电池信息,包括是否在充电,还有电量百分比。如果电量<=30%且未插充电器,就使用 pynotifier 发送一个桌面通知 通知标题为 Battery Low,内容为剩余电量百分比,通知显示 5 秒后自动关闭。

3

   

获取网站的 IP 地址和主机名

import socket


def get_hostname_IP():
    hostname = input("Please enter website address(URL):")
    try:
        print (f'Hostname: {hostname}')
        print (f'IP: {socket.gethostbyname(hostname)}')
    except socket.gaierror as error:
        print (f'Invalid Hostname, error raised is {error}')


get_hostname_IP()

这段代码实现了输入网站域名返回对应的 IP 地址的功能。首先,导入 socket 模块,定义 get_hostname_IP 函数,在函数内部,提示输入网址,并用 input 读取用户输入,然后打印输出用户输入的网址(hostname),使用 socket.gethostbyname 根据主机名解析对应的 IP 地址。使用 try except 块捕获可能出现的 socket.gaierror 错误。

代码执行的结果为

Please enter website address(URL):baidu.com
Hostname: baidu.com
IP: 39.156.66.10

4

   

压缩文件夹和文件

import zipfile
import sys
import os




def zip_file(file_path):
    compress_file = zipfile.ZipFile(file_path + '.zip', 'w')
    compress_file.write(path, compress_type=zipfile.ZIP_DEFLATED)
    compress_file.close()




def retrieve_file_paths(dir_name):
    file_paths = []


    for root, directories, files in os.walk(dir_name):
        for filename in files:
            file_path = os.path.join(root, filename)
            file_paths.append(file_path)


    return file_paths




def zip_dir(dir_path, file_paths):
    compress_dir = zipfile.ZipFile(dir_path + '.zip', 'w')
    with compress_dir:
        for file in file_paths:
            compress_dir.write(file)




if __name__ == "__main__":
    path = sys.argv[1]


    if os.path.isdir(path):
        files_path = retrieve_file_paths(path)
        print('The following list of files will be zipped:')
        for file_name in files_path:
            print(file_name)
        zip_dir(path, files_path)
    elif os.path.isfile(path):
        print('The %s will be zipped.' % path)
        zip_file(path)
    else:
        print('a special file(socket,FIFO,device file), please input file or dir')

上述代码实现了一个目录或文件的压缩功能,主要用到了模块 zipfile、os 和 sys。

代码执行的结果为

python test.py input.json
The input.json will be zipped.

5

   

文字转语音

from gtts import gTTS 
import os
file = open("abc.txt", "r").read()


speech = gTTS(text=file, lang='en', slow=False)
speech.save("voice.mp3")
os.system("voice.mp3")

这段代码使用了 gtts 库来将文本转换为语音,并保存为 mp3 文件。gtts 库是Google Text-to-Speech 的缩写,用于将文本转换为语音。使用 gTTS 类创建了一个 speech 对象,将 file 变量中的文本作为参数传递给 text 参数,lang 参数指定了语言,这里是英语(en),slow 参数指定了语音的速度,这里是 False,表示正常速度。

6

   

免费社群

b023506f1b43cc2fcbe5f0a628e535f0.jpeg

76ebbe95dc2f78e92f5b3fc49726cabb.gif

更多推荐

CH2--x86系统架构概览

2.1OVERVIEWOFTHESYSTEM-LEVELARCHITECTURE图中的实线箭头表示线性地址,虚线表示段选择器,虚线箭头表示物理地址2.1.1GlobalandLocalDescriptorTables全局描述符表(GDT)GDT是一个全局的段描述符表,它存储在系统内存中的一个固定位置。通常,GDT被加载

【kafka】kafka命令大全

概述本文将分享一些kafka经常使用的一些命令,不断完善中。管理创建主题,3个分区,2个副本对使用了zookeeper的kafkakafka-topics.sh--create--zookeeper192.168.2.140:2181,192.168.2.141:2181,192.168.2.142:2181--rep

iPhone 15秋季发布会召开,媒介盒子多家媒体持续报道

现如今互联网引流成本越来越高不说,难度越来越大,大多数都是投入巨大,收效甚微。因此,用有限的成本带来高回报的效果成为企业共同的追求。当然,企业想要产品服务引流绝非易事。为什么你的品牌营销不见效?新产品上市要怎么做宣传?盒子以新发布的苹果15为例分析,给你一些启发。1、时机很重要9月13日,苹果秋季发布会如期而至,各大媒

AERMOD模型在大气环境影响评价中的应用

随着我国经济快速发展,我国面临着日益严重的大气污染问题。近年来,严重的大气污染问题已经明显影响国计民生,引起政府、学界和人们越来越多的关注。大气污染是工农业生产、生活、交通、城市化等方面人为活动的综合结果,同时气象因素是控制大气污染的关键自然因素。大气污染问题既是局部、当地的,也是区域的,甚至是全球的。本地的污染物排放

【web开发】8、Django(3)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、管理员1.表结构2.layout.html文件下添加管理员账号的导航3.urls.py文件(POST请求传递nid)4.form.py文件(密码加密,确认密码,重置密码与原密码要求不一致)5.admin.py文件二、中间件(实现登录校验)1

【JAVA】idea初步使用+JDK详细配置

1、官方下载idea官网:DownloadIntelliJIDEA–TheLeadingJavaandKotlinIDE(1)、下载教程我下载没截屏,详细教程请看原文:手把手教你JDK+IDEA的安装和环境配置_idea配置jdk_快到锅里来呀的博客-CSDN博客2、启动项目时候需要配置JDK环境(1)、下载JDK官网

Jmeter安装与测试

目录一:JMeter简介:二:JMeter安装与配置三:JMeter主要原件一:JMeter简介:JMeter,一个100%的纯Java桌面应用,由Apache组织的开放源代码项目,它是功能和性能测试的工具。具有高可扩展性、支持Web(HTTP/HTTPS)、SOAP、FTP、JAVA等多种协议的特点。官方网站:htt

方案:浅析利用AI智能识别与视频监控技术打造智慧水产养殖监管系统

一、方案背景针对目前水产养殖集约、高产、高效、生态、安全的发展需求,基于智能传感、智慧物联网、人工智能、视频监控等技术打造智慧水产系统,成为当前行业的发展趋势。传统的人工观察水产养殖方式较为单一,难以及时发现人员非法入侵、偷盗、偷钓、水质污染等管理问题。二、方案概述TSINGSEE青犀视频智慧水产养殖方案主要是围绕视频

TDengine 与煤矿智能 AI 视频管理系统实现兼容性互认

煤矿行业是一个充满危险和复杂性的领域,具备产业规模大、分布地域广、安全性要求高等特点,为了实现智能化预警、预测等目的,煤矿企业纷纷采用现代化的技术来提高安全性、生产效率和管理水平。煤矿智能AI视频管理系统可以助力企业更好地进行矿工工作环境监测、异常情况报警等工作,从而提高安全性并减少事故风险,在煤矿项目中已经得到了广泛

做接口测试如何上次文件

【软件测试面试突击班】如何逼自己一周刷完软件测试八股文教程,刷完面试就稳了,你也可以当高薪软件测试工程师(自动化测试)在日常工作中,经常有上传文件功能的测试场景,因此,本文介绍两种主流编写上传文件接口测试脚本的方法。首先,要知道文件上传的一般原理:客户端根据文件路径读取文件内容,将文件内容转换成二进制文件流的格式传输给

PASCAL VOC2012数据集详细介绍

PASCALVOC2012数据集详细介绍0、数据集介绍2、PascalVOC数据集目标类别3、数据集下载与目录结构4、目标检测任务5、语义分割任务6、实例分割任务7、类别索引与名称对应关系0、数据集介绍2、PascalVOC数据集目标类别在PascalVOC数据集中主要包含20个目标类别,下图展示了所有类别的名称以及所

热文推荐