朋友上午说有个mp4需要转成mp3,但是电脑之前可以免费转,现在要收费了。
本着收费软件一律不用的原则,这个是突破底线的事情坚决不干。
现在在大模型的帮助下,差不多5-10分钟就可以做一个类似功能的小软件。
提示词就写:我要做一个mp4 转成mp3的小软件,要求在其他的电脑上也能运行,不需要安装什么特殊的环境。
结果给我生成了一个字符界面的工具:
再次沟通:做成一个gui界面的
给出一个初步能用的版本
import tkinter as tk from tkinter import filedialog, messagebox from moviepy.editor import VideoFileClip import os # 创建主窗口 root = tk.Tk() root.title('MP4 转 MP3') # 设置窗口大小 root.geometry('400x400') # 定义选择文件的函数 def select_file(): file_path = filedialog.askopenfilename(filetypes=[("MP4 files", "*.mp4")]) if file_path: entry_mp4.delete(0, tk.END) entry_mp4.insert(0, file_path) # 定义保存文件的函数 def save_file(): file_path = filedialog.asksaveasfilename(defaultextension=".mp3", filetypes=[("MP3 files", "*.mp3")]) if file_path: entry_mp3.delete(0, tk.END) entry_mp3.insert(0, file_path) # 定义转换的函数 def convert(): mp4_path = entry_mp4.get() mp3_path = entry_mp3.get()
if not os.path.exists(mp4_path): messagebox.showerror("错误", "请选择一个有效的MP4文件") return
try: video = VideoFileClip(mp4_path) video.audio.write_audiofile(mp3_path) messagebox.showinfo("成功", "转换完成!") except Exception as e: messagebox.showerror("错误", f"转换失败:{str(e)}") # MP4文件选择框和按钮 label_mp4 = tk.Label(root, text="选择MP4文件:") label_mp4.pack(pady=10) entry_mp4 = tk.Entry(root, width=40) entry_mp4.pack(pady=5) btn_select_mp4 = tk.Button(root, text="选择文件", command=select_file) btn_select_mp4.pack(pady=5) # MP3文件保存位置选择框和按钮 label_mp3 = tk.Label(root, text="保存为MP3文件:") label_mp3.pack(pady=10) entry_mp3 = tk.Entry(root, width=40) entry_mp3.pack(pady=5) btn_save_mp3 = tk.Button(root, text="选择保存位置", command=save_file) btn_save_mp3.pack(pady=5) # 转换按钮 btn_convert = tk.Button(root, text="开始转换", command=convert) btn_convert.pack(pady=20) # 运行主循环 root.mainloop() |
但是运行起来,效果是这样的:
我想做成一个只选mp4 文件名,自动保存到相同的目录,文件名相同,后缀改成mp3,
再次沟通:
自动将mp3的目录和文件名填写好,目录跟mp4放在一个目录,名称一样,后缀名改成mp3
效果是这样的(选择mp4文件后 ,输出文件自动填充)
代码是这样的
import tkinter as tk from tkinter import filedialog, messagebox from moviepy.editor import VideoFileClip import os # 创建主窗口 root = tk.Tk() root.title('MP4 转 MP3') # 设置窗口大小 root.geometry('400x400') # 定义选择文件的函数,并自动设置MP3文件的路径 def select_file(): file_path = filedialog.askopenfilename(filetypes=[("MP4 files", "*.mp4")]) if file_path: entry_mp4.delete(0, tk.END) entry_mp4.insert(0, file_path)
# 自动生成MP3文件路径(与MP4相同目录,名称相同,扩展名为.mp3) mp3_path = os.path.splitext(file_path)[0] + ".mp3" entry_mp3.delete(0, tk.END) entry_mp3.insert(0, mp3_path) # 定义转换的函数 def convert(): mp4_path = entry_mp4.get() mp3_path = entry_mp3.get()
if not os.path.exists(mp4_path): messagebox.showerror("错误", "请选择一个有效的MP4文件") return
try: video = VideoFileClip(mp4_path) video.audio.write_audiofile(mp3_path) messagebox.showinfo("成功", "转换完成!") except Exception as e: messagebox.showerror("错误", f"转换失败:{str(e)}") # MP4文件选择框和按钮 label_mp4 = tk.Label(root, text="选择MP4文件:") label_mp4.pack(pady=10) entry_mp4 = tk.Entry(root, width=40) entry_mp4.pack(pady=5) btn_select_mp4 = tk.Button(root, text="选择文件", command=select_file) btn_select_mp4.pack(pady=5) # MP3文件保存位置显示框(不需要用户手动选择) label_mp3 = tk.Label(root, text="自动生成的MP3文件:") label_mp3.pack(pady=10) entry_mp3 = tk.Entry(root, width=40) entry_mp3.pack(pady=5) # 转换按钮 btn_convert = tk.Button(root, text="开始转换", command=convert) btn_convert.pack(pady=20) # 运行主循环 root.mainloop() |
前后不到10分钟就搞定了这个小的需求。
打个包 发给朋友,齐活了
感慨一下:现在的大模型真的是改变了开发的模式。