自制Python小工具(1)——Gadgets 0.1

article/2025/8/15 1:08:45

文章目录

  • 1. 前言
  • 2. Gadgets 0.1介绍
    • 2.1 使用过程概述
  • 3. Gadgets 0.1功能实现
    • 3.1 创建文件
    • 3.2 功能编程
      • 3.2.1 安装
      • 3.2.2 导库
      • 3.2.3 定义函数并实现功能
    • 3.3 主程序
      • 3.3.1 向用户问好并提供指示
      • 3.3.2 填入功能
    • 3.4 装饰
      • 加载
  • 4. 源码展示
    • 4.1 extract_music.py
    • 4.2 loading.py
    • 4.3 Gadgets0.1.py


1. 前言

大家好啊,我是落枕!
最近一直比较忙哈,没有写文章,不好意思……
我今天就和大家分享一个我自己做的项目,名字就叫小工具,Gadgets,希望大家可以喜欢


2. Gadgets 0.1介绍

我的这个小工具在第0版中只有一个功能,就是把音乐从视频里提取出来的功能
开发环境:python3.7
开发工具:pycharm64.exe

2.1 使用过程概述

用户在点开这个文件(或者说是用命令打开了这个文件,后面会细讲),随后会最后向用户确认用户是否确定需要进行下一步(此处是为了防止误触),随后会提示用户输入视频所在的路径(在下一版本中会改进),最后生成mp3文件。(后续的更改文件名过程将会在下一版本中改进)


3. Gadgets 0.1功能实现

3.1 创建文件

这一部很简单,创建一个文件即可。
在这里插入图片描述
(此处为iPad备份存档截图)


3.2 功能编程

我们需要用到一个第三方库,pip安装即可

3.2.1 安装

我们要用的是moviepy库,使用pip安装
pip install moviepy
一直等到安装成功即可。
安装成功


3.2.2 导库

import moviepy.editor as mp

3.2.3 定义函数并实现功能

def extract_music(path):my_clip = mp.VideoFileClip(path)my_clip.audio.write_audiofile('{0}.mp3'.format(path))

最基本的功能就好了,但是在用户输入的路径有误的时候会引发OsError,我们可以使用try-except避免程序终止

import os
import time
def extract_music(path):try:my_clip = mp.VideoFileClip(videos_file_path)my_clip.audio.write_audiofile('{0}.mp3'.format(path))os.system("cls")print("-Completed-")print("-You Can Change The File Name By Yourself")print("-We Will Further Develop This Function-")except OSError:time.sleep(1)os.system("cls")print("-There's Something Wrong-")print("-Please Check Your Path And Try Again-")

3.3 主程序

主程序的命名就用我们整个小工具的名字,Gadgets 0.1
新建一个py文件:
主程序截图

3.3.1 向用户问好并提供指示

我们先定义一个函数,叫做main(),(当然,各位在if __name__ ==“__main__”:下进行程序编写也是可以的)
那么我们的问号环节就不和大家详细说了,随便写就可以,以下只是做一个参考,不喜勿喷。

import timedef main():print("-Welcome Using Gadgets 0.1!-")time.sleep(1)print("-One Service-")print("-1.Extract Music-")a = input("Be Ready To Enter The Program?\n(Y=Yes   Other Key=No):")#进行最后的确认,以防用户误触,如果觉得累赘的话,可以删去a = a.upper()if a == 'Y':. . .#此处需要刚刚我们完成的功能填入else:print("-Thanks For Using-")if __name__ == "__main__":main()

3.3.2 填入功能

刚才的功能其实我们已经实现了,但是缺少人性化的体验,所以我们再一次打开刚刚的extract_music.py,进行功能的人性化设计。
我们定义一个函数,叫做course(),(即“过程”的意思),专门用来存储用户使用过程的设计。以下依旧是仅作参考,不喜勿喷。

def course():os.system('cls')path = input("-Please Give Me The Path Which The Movie Is In-\nEnter Here:)")print("-It May Take For Some Minutes-")print("-When The System is Extracting-")print("-Let's Have A Break-")extract_music(path)

那么我们整个extract_music.py就大功告成了,文末我会附上整个代码。
接下来进行填入

import time
from extract_music import course #这一句千万别漏掉了def main():print("-Welcome Using Gadgets 0.1!-")time.sleep(1)print("-One Service-")print("-1.Extract Music-")a = input("Be Ready To Enter The Program?\n(Y=Yes   Other Key=No):")a = a.upper()if a == 'Y':course()else:print("-Thanks For Using-")if __name__ == "__main__":main()

大部分的功能就好了,我们在做一点细节,比如说加载界面。


3.4 装饰

加载

ps:这一部分并非必要,不喜欢的可以删去,觉得简陋的可以自己改一改
我们再再再再创建一个文件,叫做loading.py
里面填上下面这一段代码,就可以实现加载进度条啦!

import os
import timedef load():print("-Please Wait-")time.sleep(1)print("-We Are Loading For You-")os.system("cls")print("-        |")print("Loading Now")time.sleep(1)os.system("cls")print("--       |")print("Loading Now")time.sleep(1)os.system("cls")print("---      |")print("Loading Now")time.sleep(1)os.system("cls")print("----     |")print("Loading Now")time.sleep(1)os.system("cls")print("-----    |")print("Loading Now")time.sleep(1)os.system("cls")print("------   |")print("Loading Now")time.sleep(1)os.system("cls")print("-------  |")print("Loading Now")time.sleep(1)os.system("cls")print("-------- |")print("Loading Now")time.sleep(1)os.system("cls")print("---------|")print("Loading Completed")time.sleep(1)os.system("cls")

对了,我们还得在主程序里加上这个函数才行。

from loading import load
from extract_music import course
import timedef main():load()time.sleep(1)print("-Welcome Using Gadgets 0.1!-")time.sleep(1)print("-One Service-")print("-1.Extract Music-")a = input("Be Ready To Enter The Program?\n(Y=Yes   Other Key=No):")a = a.upper()if a == 'Y':course()else:print("-Thanks For Using-")if __name__ == "__main__":main()

大功告成!

4. 源码展示

4.1 extract_music.py

import moviepy.editor as mp
import time
import osdef extract_music(path):try:my_clip = mp.VideoFileClip(path)my_clip.audio.write_audiofile('{0}.mp3'.format(path))os.system("cls")print("-Completed-")print("-You Can Change The File Name By Yourself")print("-We Will Further Develop This Function-")except OSError:time.sleep(1)os.system("cls")print("-There's Something Wrong-")print("-Please Check Your Path And Try Again-")def course():os.system('cls')path = input("-Please Give Me The Path Which The Movie Is In-\nEnter Here:")print("-It May Take For Some Minutes-")print("-When The System is Extracting-")print("-Let's Have A Break-")extract_music(path)

4.2 loading.py

import os
import timedef load():print("-Please Wait-")time.sleep(1)print("-We Are Loading For You-")os.system("cls")print("-        |")print("Loading Now")time.sleep(1)os.system("cls")print("--       |")print("Loading Now")time.sleep(1)os.system("cls")print("---      |")print("Loading Now")time.sleep(1)os.system("cls")print("----     |")print("Loading Now")time.sleep(1)os.system("cls")print("-----    |")print("Loading Now")time.sleep(1)os.system("cls")print("------   |")print("Loading Now")time.sleep(1)os.system("cls")print("-------  |")print("Loading Now")time.sleep(1)os.system("cls")print("-------- |")print("Loading Now")time.sleep(1)os.system("cls")print("---------|")print("Loading Completed")time.sleep(1)os.system("cls")

4.3 Gadgets0.1.py

from loading import load
from extract_music import course
import timedef main():load()time.sleep(1)print("-Welcome Using Gadgets 0.1!-")time.sleep(1)print("-One Service-")print("-1.Extract Music-")a = input("Be Ready To Enter The Program?\n(Y=Yes   Other Key=No):")a = a.upper()if a == 'Y':course()else:print("-Thanks For Using-")if __name__ == "__main__":main()

邮箱:fkdlzz@163.com
创作不易,不喜勿喷,欢迎指教!
忘了说一件事情了,我也组了一个python交流群,不同的是,这个群是建在了钉钉上,欢迎加入!
群号: 44827065
进不去的话私聊找我


http://chatgpt.dhexx.cn/article/AtBH9IvA.shtml

相关文章

Windows下安装pycocotools(本人亲测,可以解决)

Windows下安装pycocotools 1. 下载pycocotools的源码2. 安装python对应的VC3. 进行pycocotools的编译4. 测试安装是否成功 参考博客:原博客 由于windows下是不能直接使用conda install 或者pip install pycocotools,唉,不像linux系统&#x…

学习 PySOT(2)(PySOT-toolkit、对比、画图)

文章目录 前言一、pysot-toolkit准备工作1.所需环境要求2.文件配置3.运行配置(对比算法) 二、安装latex软件(win10系统)1.安装MiKTeX2.安装TexMaker3.配置TexMaker4.配置MiKTeX 三、运行eval.py画图1. 修改eval.py参数,运行2. 常见问题解决 前…

redis-exporter监控

文章目录 启动redis-export服务启动prometheus服务启动granfana服务测试报警 使用redis-exporter监控redis服务,并且使用prometheus收集数据,使用grafana展示数据。 监控报警利用alertmanager插件,报警信息发送钉钉消息。所使用的安装包可以 …

Zabbix实现对Redis的监控

Zabbix实现对Redis的监控 环境准备 五台机器: zabbix_agent 5.0 被动模式(已安装) Zabbix_java_gateway 5.0 (已安装) 10.0.0.7 MariaDB-10.4.22(已安装) zabbix_server 5.0(已安…

zabbix配置redis监控

1 redis监控需要用到zabbix_agent2的版本,该版本涵盖了zabbix_agent1的全部功能。安装zabbix_agent2 yum install zabbix-agent2-5.0.13-1.el7.x86_64 -y 2 配置zabbix_agent2.conf的脚本,将redis的相关信息配置。vi /etc/zabbix/zabbix_agent2.conf …

【中间件】Redis监控以及指标

一、监控指标 1.1、性能指标:Performance Name Description latency Redis响应一个请求的时间 instantaneous_ops_per_sec 平均每秒处理请求总数 hi rate(calculated) 缓存命中率(计算出来的 1.2、内存指标: Memory Name Description used_m…

Redis监控和预警

1.摘要 本人从事Java Web开发,在项目开发中会用到很多中间件,本文主要介绍Redis监控的一点心得和使用,公司DBA也有相应的监控,但是我们的业务比较重要,想做一个备份监控,对Redis监控需要做监控和预警&#…

如何完善Redis监控告警?

本文字数:3940字 预计阅读时间:20分钟 一、背景二、监控指标分类三、监控指标说明四、总结 一、背景 Redis监控告警实践是基于开发CacheCloud云平台过程中不断实践和总结出来,随着Redis实例规模不断变大,会遇到各种各样的问题&…

redis集群监控

通过Prometheus监控redis集群 一、promethus安装 下载地址: https://github.com/prometheus/prometheus/releases 1、下载 wget https://github.com/prometheus/prometheus/releases/download/v2.32.1/prometheus-2.32.1.linux-amd64.tar.gz 2、安装、配置 ta…

Linux安装Redis监控工具RedisInsight

文章目录 1.简介2.安装RedisInsight2.1下载RedisInsight2.2配置RedisInsight2.3运行RedisInsight 3.使用RedisInsight3.1添加Redis3.1.1添加单机Redis 3.2自动发现Redis3.3以编程方式添加Redis3.4性能指标3.5集群管理3.6命令行3.7内存分析3.7.1在实例上运行内存分析3.7.2内存概…

RedisInsight:Redis监控工具部署(linux)

RedisInsight 部署流程 简介一、下载二、安装1.准备工作2.配置及介绍3.运行4.访问 总结 简介 RedisInsight提供以下功能: 易于使用基于浏览器的界面来搜索键、查看和编辑数据唯一支持Redis集群的GUI工具支持基于SSL/TLS的连接运行内存分析 一、下载 下载地址: R…

redis监控工具

redis-monitor 项目github地址:https://github.com/NetEaseGame/redis-monitor (看作者名称,应该是华科的) # 安装 pip install redis-monitor#初始化redis-monitor init#启动 nohup redis-monitor start > redis-monitor.l…

Redis性能监控

redis_exporter prometheus grafana监控Redis服务指标 1.redis_exporter2.prometheus3.grafana 本文使用 redis_exporter prometheus grafana 实现对Redis服务进行监控,原因:成本低,人工干预少,直接下载对应的组件,只需添加配置即可互相通信,可视化指标也比较全面。 下面是在…

性能测试:Redis性能监控(redis-stat工具)

redis 监控 redis 监控一共有两种方式,一种是通过info命令,还有一种是使用redis-stat工具。两者其实本质是一样的,不过一个是命令行的模式下查看监控数据,而另外一种是图形化页面查看。但是实际上,我们性能测试主要更…

Redis监控利器---Redis State

强烈推荐一个大神的人工智能的教程:http://www.captainai.net/zhanghan 【前言】 在之前的博文《Redis百万级别数据迁移》中分享我们系统为降低服务器成本,从亚马逊云迁至阿里云的一次生产迁移过程中Redis部分迁移;去年迁移Redis时数据量500…

【Redis监控】

方法1:redis-stat 下载地址:https://github.com/junegunn/redis-stat 可以直接下载安装jar包 Usage usage: redis-stat [HOST[:PORT][/PASS] ...] [INTERVAL [COUNT]] -a, --authPASSWORD Password -v, --verbose …

redis监控

上篇我们将redis安装好了,但是自己搭建的服务监控起来比较麻烦,我们每次都需要跑到redis-cli使用info命令查看redis的状态。 所以我们需要一个可视化的redis监控工具,这里我们为了方便使用docker进行安装,毕竟依赖这个东西是要搞…

性能测试之Redis和Nginx 性能监控

redis 监控 redis 监控一共有两种方式,一种是通过info命令,还有一种是使用redis-stat工具。两者其实本质是一样的,不过一个是命令行的模式下查看监控数据,而另外一种是图形化页面查看。但是实际上,我们性能测试主要更…

redis基础监控

redis监控 redis server 监控: redis存活判断:ping判断,如果指定时间返回PONG表示存活,否则redis不能响应请求,可能阻塞或死亡 机器端口检查:nc 判断端口是否正常。 连接数:connected_clients …

【23种设计模式】设计模式介绍与分类

前言 本文为 【23种设计模式】设计模式介绍与分类 相关知识介绍,下边将对什么是设计模式,设计模式的分类与23种设计模式的关键点进行详尽介绍~ 📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考:【…