Python精选200Tips:126-130

news2024/11/15 20:00:20

Those who know are not as good as those who love, and those who love are not as good as those who enjoy

  • 126 PyInstaller - 将 Python 程序打包成独立可执行文件的工具
        • 示例:图像变为灰度图像
          • 项目结构
          • 代码文件
          • 打包步骤
          • 运行可执行文件
  • 127 PyYAML - YAML 解析和生成工具
        • 示例:读取配置内容
          • 项目结构
          • 代码文件
          • 运行结果
  • 128 Pydub、Librosa - 音频处理、分析库
        • 示例1: 分析音乐旋律
        • 示例2: 音频频谱图可视化
        • 示例3: 音频波形可视化
  • 129 Pygame - 游戏开发库
        • 示例1: 五子棋
        • 示例2: 贪吃蛇
        • 示例3: 数独
  • 130 MoviePy- 视频编辑和处理库
        • 剪辑视频
        • 合成视频
        • 添加文本
        • 音频处理

玩中学Python

运行系统:macOS Sonoma 14.6.1
Python编译器:PyCharm 2024.1.4 (Community Edition)
Python版本:3.12

往期链接:

1-5 6-10 11-20 21-30 31-40 41-50
51-60:函数 61-70:类 71-80:编程范式及设计模式
81-90:Python编码规范 91-100:Python自带常用模块-1
101-105:Python自带模块-2 106-110:Python自带模块-3
111-115:Python常用第三方包-频繁使用 116-120:Python常用第三方包-深度学习
121-125:Python常用第三方包-爬取数据

本文只介绍每个包主要做什么及一些比较经典的示例。对于包的进一步学习,推荐参考对应包的官方文档。

126 PyInstaller - 将 Python 程序打包成独立可执行文件的工具

pyinstaller版本6.10.0,官方文档

PyInstaller 是一个用于将 Python 程序打包成独立可执行文件的工具。它支持 Windows、macOS 和 Linux,能够将 Python 代码及其依赖项打包在一起,使得用户无需安装 Python 环境即可运行你的程序。主要特点:

  • 跨平台:支持多种操作系统。
  • 自动分析依赖:自动识别并包含所需的库和模块。
  • 支持多种格式:可以生成单个可执行文件或包含多个文件的目录。
  • 可自定义:允许用户自定义打包过程,例如添加图标或数据文件。

创建一个简单的图像处理应用,允许用户加载图像并将其转换为灰度图像。这个应用将使用 Pillow 库进行图像处理。

示例:图像变为灰度图像
项目结构

在这里插入图片描述

代码文件

main.py

import sys
import os
from PIL import Image

def convert_to_grayscale(image_path, output_path):
    """将图像转换为灰度并保存"""
    img = Image.open(image_path)
    gray_img = img.convert("L")
    gray_img.save(output_path)
    print(f"Saved grayscale image to {
     output_path}")

def main():
    if len(sys.argv) != 3:
        print("Usage: main.py <input_image_path> <output_image_path>")
        sys.exit(1)

    input_image = sys.argv[1]
    output_image = sys.argv[2]

    if not os.path.exists(input_image):
        print(f"Input file does not exist: {
     input_image}")
        sys.exit(1)

    convert_to_grayscale(input_image, output_image)

if __name__ == "__main__":
    main()

requirements.txt

Pillow

example.icns

打包后的图标,widows系统是.ico文件,macos系统是.icns文件

在这里插入图片描述

打包步骤

打开终端,并导航到 image_processor 目录

 cd /Users/anfany/Documents/OneLinePython/image_processor

运行 PyInstaller

pyinstaller --clean --windowed --onefile --icon=/Users/anfany/Documents/OneLinePython/image_processor/example.icns --name=ImageProcessor main.py

在 Windows 上,--add-data 的分隔符为 ;,而在 macOS/Linux 上应使用 :。

……
14698 INFO: Building EXE from EXE-00.toc completed successfully.
14701 INFO: checking BUNDLE
14701 INFO: Building BUNDLE because BUNDLE-00.toc is non existent
14701 INFO: Building BUNDLE BUNDLE-00.toc
14706 INFO: Signing the BUNDLE...
14746 INFO: Building BUNDLE BUNDLE-00.toc completed successfully.

查找生成的文件

查看 dist 目录,会发现 ImageProcessor.exe(Windows 系统)或 ImageProcessor( macOS/Linux 系统)。

运行可执行文件
./dist/ImageProcessor images/sample.jpg images/sample_gray.jpg
Saved grayscale image to images/sample_gray.jpg

在这里插入图片描述

127 PyYAML - YAML 解析和生成工具

PyYAML版本6.0.2,官方文档
PyYAML 是一个用于处理 YAML(YAML Ain’t Markup Language)的 Python 库。YAML 是一种人类可读的数据序列化格式,广泛用于配置文件和数据交换。PyYAML 允许你轻松地将 YAML 格式的数据加载到 Python 对象中,或将 Python 对象转储为 YAML 格式。

基本用法

  • 加载 YAML 数据

使用 yaml.load() 函数从 YAML 文件或字符串中读取数据。

  • 转储 YAML 数据

使用 yaml.dump() 函数将 Python 对象转换为 YAML 格式。

示例:读取配置内容
项目结构
yaml_example/
├── config.yaml
└── main.py
代码文件

config.yaml 内容

# 复杂配置文件示例
app:
  name: MyWebApp
  version: 1.0
  debug: true
  features:
    authentication: true
    payments: false
    notifications:
      email: true
      sms: false

database:
  type: postgresql
  host: localhost
  port: 5432
  username: myuser
  password: mypass
  dbname: mydatabase

logging:
  level: DEBUG
  handlers:
    - console
    - file
  file:
    path: /var/log/mywebapp.log
    max_size: 10MB
    backup_count: 5

api:
  endpoints:
    - path: /users
      method: GET
      description: Get user list
    - path: /users/{
   id}
      method: GET
      description: Get user by ID
    - path: /users
      method: POST
      description: Create a new user

main.py 内容

import yaml

def load_config(file_path):
    """加载 YAML 配置文件"""
    with open(file_path, 'r') as file:
        config = yaml.load(file, Loader=yaml.FullLoader)
    return config

def print_config(config):
    """打印配置内容"""
    print(f"应用名称: {
     config['app']['name']}")
    print(f"版本: {
     config['app']['version']}")
    print(f"调试模式: {
     config['app']['debug']}")
    
    print("功能开关:")
    for feature, enabled in config['app']['features'].items():
        print(f"  {
     feature}: {
     '开启' if enabled else '关闭'}")

    print("数据库配置:")
    print(f"  类型: {
     config['database']['type']}")
    print(f"  主机: {
     config['database']['host']}")
    print(f"  端口: {
     config['database']['port']}")
    print(f"  用户名: 

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

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

相关文章

【机器学习(六)】分类和回归任务-LightGBM算法-Sentosa_DSML社区版

文章目录 一、算法概念二、算法原理&#xff08;一&#xff09;Histogram&#xff08;二&#xff09;GOSS1、信息增益2、近似误差 &#xff08;三&#xff09;EFB 三、算法优缺点&#xff08;一&#xff09;优点&#xff08;二&#xff09;缺点 四、LightGBM分类任务实现对比&a…

计算机毕业设计 财会信息管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【机器学习(四)】分类和回归任务-梯度提升决策树(GBDT)-Sentosa_DSML社区版

文章目录 一、算法概念一、算法原理&#xff08;一&#xff09; GBDT 及负梯度拟合原理&#xff08;二&#xff09; GBDT 回归和分类1、GBDT回归1、GBDT分类二元分类多元分类 &#xff08;三&#xff09;损失函数1、回归问题的损失函数2. 分类问题的损失函数&#xff1a; 三、G…

ThreeJS入门(002):学习思维路径

查看本专栏目录 - 本文是第 002篇入门文章 文章目录 如何使用这个思维导图 Three.js 学习思维导图可以帮助你系统地了解 Three.js 的各个组成部分及其关系。下面是一个简化的 Three.js 学习路径思维导图概述&#xff0c;它包含了学习 Three.js 的主要概念和组件。你可以根据这个…

CSP-J 之计算机基本结构

文章目录 前言计算机的宏观结构计算机的微观结构硬件部分软件部分 计算机硬件系统介绍主存储器与辅助存储器1. 主存储器&#xff08;Main Memory&#xff09;2. 辅助存储器&#xff08;Secondary Storage&#xff09;Cache&#xff08;缓存&#xff09;总线&#xff08;Bus&…

Java 行为型设计模式一口气讲完!*^____^*

Java 责任链模式 Java设计模式 -责任链模式 责任链模式为请求创建一个接收者对象列表。 这种模式是行为模式。 当使用责任链模式时&#xff0c;通常每个接收器包含对另一个接收器的引用。 如果一个对象不能处理请求&#xff0c;则它将相同的对象传递给下一个接收者&#xf…

vue的路由

v2用3版本&#xff0c;v3用4版本 import Vue from vue import VueRouter from vue-router Vue.use(VueRouter) const routes [] const router new VueRouter({ routes }) export default router import Vue from vue import App from ./App.vue import router from /router V…

【漏洞复现】科荣AIO moffice Sql注入漏洞

免责声明&#xff1a; 本文内容旨在提供有关特定漏洞或安全漏洞的信息&#xff0c;以帮助用户更好地了解可能存在的风险。公布此类信息的目的在于促进网络安全意识和技术进步&#xff0c;并非出于任何恶意目的。阅读者应该明白&#xff0c;在利用本文提到的漏洞信息或进行相关测…

应用案例分享 | 智驾路试数据分析及 SiL/HiL 回灌案例介绍

概述 为有效利用海量的路试数据并发挥其价值&#xff0c;经纬恒润推出了OrienLink路试数据分析及开环/闭环回灌测试系统。该系统采用统一的数据存储标准平台&#xff0c;基于云计算技术提供的大规模存储、高带宽和高算力&#xff0c;能够对路试数据进行深入的场景挖掘。通过软件…

AI小项目4-用Pytorch从头实现Transformer(详细注解)

目录 一、前期准备工作学习如何读AI论文读Transformer原始论文用Pytorch从头实现Transformer 二、我的完整代码实现1.导入库2.基本组件创建词嵌入位置嵌入自注意力 3.编码器4.解码器5.完整架构6.简单测试一下代码创建模型和准备简单的训练数据训练一次&#xff08;前向传播&…

用Python实现时间序列模型实战——Day 20: 时间序列预测的综合练习

一、学习内容 在本节中&#xff0c;我们将综合应用前几周学习的时间序列分析与预测方法&#xff0c;完成一个完整的时间序列预测项目&#xff0c;包含从数据预处理、异常检测、模型选择、预测到评估的全流程。项目流程&#xff1a; 1. 数据获取与预处理 数据加载&#xff0c…

023.PL-SQL进阶—视图

课 程 推 荐我 的 个 人 主 页&#xff1a;&#x1f449;&#x1f449; 失心疯的个人主页 &#x1f448;&#x1f448;入 门 教 程 推 荐 &#xff1a;&#x1f449;&#x1f449; Python零基础入门教程合集 &#x1f448;&#x1f448;虚 拟 环 境 搭 建 &#xff1a;&#x1…

跨越日语障碍2024轻松实现日语阅读的好帮手

不知道你喜欢看日本小说吗&#xff0c;之前的东野奎吾还有不少日本作家的书籍&#xff0c;如果想看一手的书籍那就只能看日语版本的啦。但是因为语言的问题日语不是很好的小伙伴阅读起来就有一定的难度。今天我就介绍几个日语翻译工具来解决这个问题咯。 1.福昕在线翻译 链接…

简单了解 JVM

目录 ♫什么是JVM ♫JVM的运行流程 ♫JVM运行时数据区 ♪虚拟机栈 ♪本地方法栈 ♪堆 ♪程序计数器 ♪方法区/元数据区 ♫类加载的过程 ♫双亲委派模型 ♫垃圾回收机制 ♫什么是JVM JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java虚拟机。 虚拟机是指通过软件模…

网络安全培训班有用吗

在当今数字化时代&#xff0c;网络安全问题日益凸显&#xff0c;成为了全球关注的焦点。随着网络攻击的不断升级和复杂化&#xff0c;越来越多的人开始关注网络安全&#xff0c;并考虑参加网络安全培训班来提升自己的技能。那么&#xff0c;网络安全培训班到底有用吗? 一、网络…

如何彻底清除电脑上的数据?保护你的隐私安全

随着科技的飞速发展&#xff0c;电脑已经成为我们日常生活和工作中不可或缺的工具。然而&#xff0c;当我们需要更换电脑、出售旧电脑或处理废旧电脑时&#xff0c;如何彻底清除电脑上的数据成为了一个重要的问题。本文将详细介绍几种彻底清除电脑数据的方法&#xff0c;以确保…

无人机应用新纪元:图形工作站配置推荐与硬件解析

低空经济作为国家新兴的战略性产业&#xff0c;正逐步成为经济高质量发展的新动力。据统计&#xff0c;2023年中国低空经济规模达到5059.5亿元&#xff0c;增速为33.8%&#xff0c;预计到2026年有望突破万亿元大关。政府对低空经济的发展高度重视&#xff0c;不仅出台了相关法规…

IPv6路由基础

RIPng RIPng是一种较为简单的内部网关协议&#xff0c;是RIP在IPv6网络中的应用。RIPng主要用于规模较小的网络中&#xff0c;比如校园网以及结构较简单的地区性网络。由于RIPng的实现较为简单&#xff0c;在配置和维护管理方面也远比OSPFv3和IS-IS for IPv6容易&#xff0c;因…

腾讯地图SDK Android版开发 11 覆盖物示例 4 线

腾讯地图SDK Android版开发 11 覆盖物示例 4 线 前言线的属性介绍ColorType 和 LineTypeColorTypeLineType 与颜色有关的属性填充色和线宽描边颜色和描边的宽度分段颜色渐变色擦除颜色 与纹理相关属性内置纹理自定义颜色纹理线上叠加纹理 虚线 界面布局MapPolyline类常量成员变…

【系统架构设计】基于中间件的开发

【系统架构设计】基于中间件的开发 中间件技术J2EE.NET企业应用集成中间件技术 中间件属于可复用软件的范畴,处于操作系统、网络和数据库之上,应用软件的下层。 J2EE J2EE 是针对 Web Service、业务对象、数据访问和消息报传送的一组规范。这组应用编程接口确定了 Web 应用…