• 5个超实用的Python代码片段


    963dade754c3a9b077d47154ab2f5012.png

    迷途小书童

    读完需要

    7

    分钟

    速读仅需 3 分钟

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

    1

       

    密码生成器

    1. import random
    2. import string
    3. total = string.ascii_letters + string.digits + string.punctuation
    4. length = 16
    5. password = "".join(random.sample(total, length))
    6. print(password)

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

    代码的执行结果为

    rpI\2bPduJEfz{:~

    2

       

    低电量通知

    1. import psutil
    2. battery = psutil.sensors_battery()
    3. plugged = battery.power_plugged
    4. percent = battery.percent
    5. if percent <= 30 and plugged!=True:
    6. from pynotifier import Notification
    7. Notification(
    8. title="Battery Low",
    9. description=str(percent) + "% Battery remain!!",
    10. duration=5, # Duration in seconds
    11. ).send()

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

    3

       

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

    1. import socket
    2. def get_hostname_IP():
    3. hostname = input("Please enter website address(URL):")
    4. try:
    5. print (f'Hostname: {hostname}')
    6. print (f'IP: {socket.gethostbyname(hostname)}')
    7. except socket.gaierror as error:
    8. print (f'Invalid Hostname, error raised is {error}')
    9. get_hostname_IP()

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

    代码执行的结果为

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

    4

       

    压缩文件夹和文件

    1. import zipfile
    2. import sys
    3. import os
    4. def zip_file(file_path):
    5. compress_file = zipfile.ZipFile(file_path + '.zip', 'w')
    6. compress_file.write(path, compress_type=zipfile.ZIP_DEFLATED)
    7. compress_file.close()
    8. def retrieve_file_paths(dir_name):
    9. file_paths = []
    10. for root, directories, files in os.walk(dir_name):
    11. for filename in files:
    12. file_path = os.path.join(root, filename)
    13. file_paths.append(file_path)
    14. return file_paths
    15. def zip_dir(dir_path, file_paths):
    16. compress_dir = zipfile.ZipFile(dir_path + '.zip', 'w')
    17. with compress_dir:
    18. for file in file_paths:
    19. compress_dir.write(file)
    20. if __name__ == "__main__":
    21. path = sys.argv[1]
    22. if os.path.isdir(path):
    23. files_path = retrieve_file_paths(path)
    24. print('The following list of files will be zipped:')
    25. for file_name in files_path:
    26. print(file_name)
    27. zip_dir(path, files_path)
    28. elif os.path.isfile(path):
    29. print('The %s will be zipped.' % path)
    30. zip_file(path)
    31. else:
    32. 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

       

    文字转语音

    1. from gtts import gTTS
    2. import os
    3. file = open("abc.txt", "r").read()
    4. speech = gTTS(text=file, lang='en', slow=False)
    5. speech.save("voice.mp3")
    6. os.system("voice.mp3")

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

    6

       

    免费社群

    b023506f1b43cc2fcbe5f0a628e535f0.jpeg

    76ebbe95dc2f78e92f5b3fc49726cabb.gif

  • 相关阅读:
    .nc格式文件的显示及特殊裁剪方式
    使用 Nginx 实现企业微信域名配置中的校验文件跳转
    [附源码]SSM计算机毕业设计8号体育用品销售及转卖系统JAVA
    我终于体会到了:代码竟然不可以运行,为什么呢?代码竟然可以运行,为什么呢?
    极端业务场景下,我们应该如何做好稳定性保障?
    什么是多线程环境下的伪共享(false sharing)?
    【Java并发编程九】同步控制
    APP中有html5页面的时候,怎么进行元素定位
    Tracking Everything -视频目标跟踪
    MybatisPlus核心功能——实现CRUD增删改查操作 (包含条件构造器)
  • 原文地址:https://blog.csdn.net/djstavaV/article/details/133110016