IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 自制python小工具(2)——Gadgets 0.2 -> 正文阅读

[Python知识库]自制python小工具(2)——Gadgets 0.2

自制python小工具(2)——Gadgets 0.2


1. 前言

大家好呀,我是落枕!
这是我这个系列的第二篇文章,希望大家可以多多支持,感谢感谢,不喜勿喷(狗头保命)
当在下还在创作上一篇的时候,我就马不停蹄的开始搞我的Gadgets0.2,在不久前,我的Gadgets0.2已经完工啦!我就马上开动了这个文章和大家分享,希望大家可以喜欢哦!

1.1 上篇

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


2. Gadgets 0.2更新功能介绍

此次更新,在最后一处增加了更改文件名的功能,其次优化了选择文件的过程,将复制路径,改成了选择文件,减少路径错误的发生几率,当然,如果用户选择的是一个文件夹或者其他的一些情况,还是会发生OsError,但是由于我们已经在之前用了try-except进行避免了,这种程序崩溃的情况还是很少会出现的。再其次,我优化了一下加载项,让这个加载项更像一个加载条。


3. Gadgets 0.2更新功能实现

我们首先将上一次的文件夹复制一下,对复制好的文件进行更改

3.1 文件选择框选择文件

这一个是落枕偶然间想到的,因为我觉得复制路径太烦了,所以我就想有什么更好的选择文件的方法,恰好最近在学tkinter就有了灵感。
我们需要的是tkinter.filedialog.askopenfilename()来获取源文件,因为这个可以调出一个文件选择框,将这个赋值到一个变量path中。

		
os.system("cls")
# 使用tkinter.filedialog.askopenfilename()获取源文件
print("-Please Give Me The Movie-")
root = tkinter.Tk() # 创建一个tkinter窗口
path = tkinter.filedialog.askopenfilename()
root.destroy()  #这一句不写的话就会一直有一个tk窗口停留在屏幕上,很奇怪,所以记得要关掉

把我们之前的代码也给加上去:

import tkinter.filedialog
import os
import time
import moviepy.editor as mp


def extract_audio():
    try:
        os.system("cls")

        # 使用tkinter.filedialog.askopenfilename()获取源文件
        print("-Please Give Me The Movie-")
        root = tkinter.Tk()
        path = tkinter.filedialog.askopenfilename()
        root.destroy()

        print("-It May Take For Some Minutes-")
        print("-When The System is Extracting-")
        print("-Let's Have A Break-")

        # 生成音频文件
        my_clip = mp.VideoFileClip(path)
        my_clip.audio.write_audiofile(f'{path}.mp3')
        print("-Completed-")
    except OSError:
        time.sleep(1)
        os.system("cls")
        print("-There's Something Wrong-")
        print("-Please Check Your Path And Try Again-")

我们的文件选择就这样搞好了,大家觉得有什么不妥之处可以在评论区或者私信找我哦!


3.2 更改文件名

这一环节是我新加上去的,所以我们来看一下它的基础框架。

3.2.1 更改文件名的基本实现方法

由于这是对电脑上的文件夹里面的文件做手脚,那么自然而然需要用到我们的os系统模块,那我们就看一下这一步的实现方法
ps:此处参考了七天笔记本的博客《python更改文件名》在此向这位博主致谢。

import os
File_path=r"F:\data"
os.chdir(File_bpath) #更改当前路径
old="Old_File_Name.mp3" #旧文件名
new="New_File_Name.mp3" #新文件名
os.rename(old,new) #重命名操作

注释都标好了,应该都看得懂。


3.2.2 Gadgets 0.2 中的重命名操作实现

我们使用moviepy生成的音频文件文件名是不确定的,在我们的代码中,生成的音频文件名都是源文件名+.mp3正是因为源文件名不同,所以我们需要一系列操作来定位文件的路径。
在上面的代码中,我们先要让python找到路径,在进行改名,那么因为我们的音频文件是和源文件处于同一个目录之下,我们已经有了源文件的路径(即path)我们将最后源文件那一项给去掉就可以。
这里我用了一个拆分成列表,去除最后一项,再连接成字符串的方式。

# 更改文件名
        old_name_of_the_file = path + ".mp3"  # 定位生成出的旧文件名

        path_list = path.split("/")
        path_list.pop()  # 弹出最后一项,只保留其目录
        path1 = "/".join(path_list)  # 以上三步都是为了定位旧文件所在的目录

        rename = input("-Please Enter The File Name-")  # 询问新的文件名
        rename = rename + ".mp3"  # 在新的文件名后加上“.mp3”组成新的文件相对路径

        rename_path = r'{0}'.format(path1)  # 加载旧文件所在目录下的所有文件
        os.chdir(rename_path)

        old = old_name_of_the_file  # 旧文件名
        new = rename  # 新文件名
        os.rename(old, new)  # 开始重命名操作
        print("-Rename Operation  Is Completed-")
        time.sleep(3)

我们的extract_audio就完工啦~(上一期我们是extract_music但是细想想还是audio更合适,麻烦各位可以改一改,或者复制文末的源码即可)
文末有源码,直接复制也行。

3.3 加载项视觉优化

说是说优化其实也没优化多少,就是稍微改了一下样式而已,加了个箭头,老规矩,直接贴源码

import os
import time


def load():
    print("-Please Wait-")
    time.sleep(1)
    print("-We Are Loading For You-")
    time.sleep(1)
    os.system("cls")
    print("->        |")
    print("Loading Now")
    time.sleep(3)
    os.system("cls")
    print("-->       |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("--->      |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("---->     |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("----->    |")
    print("Loading Now")
    time.sleep(2)
    os.system("cls")
    print("------>   |")
    print("Loading Now")
    time.sleep(1)
    os.system("cls")
    print("------->  |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("--------> |")
    print("Loading Now")
    time.sleep(5)
    os.system("cls")
    print("--------->|")
    print("Loading Completed")
    time.sleep(1)

4. 源码展示

4.1 Gadgets 0.2 .py

from loading import load
from extract_audio import extract_audio
import time
import os


def main():
    load()
    time.sleep(1)
    os.system("cls")
    print("-Welcome Using Gadgets 0.2!-")
    time.sleep(1)
    print("-One Service-")
    print("-1.Extract Audio-")
    a = input("Be Ready To Enter The Program?\n(Y=Yes   Other Key=No):")
    a = a.upper()
    if a == 'Y':
        extract_audio()
    else:
        print("-Thanks For Using-")
        time.sleep(1)


if __name__ == "__main__":
    main()

4.2 extract_audio.py

import tkinter.filedialog
import os
import time
import moviepy.editor as mp


def extract_audio():
    try:
        os.system("cls")

        # 使用tkinter.filedialog.askopenfilename()获取源文件
        print("-Please Give Me The Movie-")
        root = tkinter.Tk()
        path = tkinter.filedialog.askopenfilename()
        root.destroy()

        print("-It May Take For Some Minutes-")
        print("-When The System is Extracting-")
        print("-Let's Have A Break-")

        # 生成音频文件
        my_clip = mp.VideoFileClip(path)
        my_clip.audio.write_audiofile(f'{path}.mp3')
        print("-Completed-")

        # 更改文件名
        old_name_of_the_file = path + ".mp3"  # 定位生成出的旧文件名

        path_list = path.split("/")
        path_list.pop()  # 弹出最后一项,只保留其目录
        path1 = "/".join(path_list)  # 以上三步都是为了定位旧文件所在的目录

        rename = input("-Please Enter The File Name-")  # 询问新的文件名
        rename = rename + ".mp3"  # 在新的文件名后加上“.mp3”组成新的文件相对路径

        rename_path = r'{0}'.format(path1)  # 加载旧文件所在目录下的所有文件
        os.chdir(rename_path)

        old = old_name_of_the_file  # 旧文件名
        new = rename  # 新文件名
        os.rename(old, new)  # 开始重命名操作
        print("-Rename Operation  Is Completed-")
        time.sleep(3)
    except OSError:
        time.sleep(1)
        os.system("cls")
        print("-There's Something Wrong-")
        print("-Please Check Your Path And Try Again-")


4.3 loading.py

import os
import time


def load():
    print("-Please Wait-")
    time.sleep(1)
    print("-We Are Loading For You-")
    time.sleep(1)
    os.system("cls")
    print("->        |")
    print("Loading Now")
    time.sleep(3)
    os.system("cls")
    print("-->       |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("--->      |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("---->     |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("----->    |")
    print("Loading Now")
    time.sleep(2)
    os.system("cls")
    print("------>   |")
    print("Loading Now")
    time.sleep(1)
    os.system("cls")
    print("------->  |")
    print("Loading Now")
    time.sleep(0.5)
    os.system("cls")
    print("--------> |")
    print("Loading Now")
    time.sleep(5)
    os.system("cls")
    print("--------->|")
    print("Loading Completed")
    time.sleep(1)

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


感谢大家的支持!
落枕先退一步啦!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:40:12  更:2022-08-06 10:43:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/26 15:20:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计