网易云vip歌曲格式转换源码

import os
import tkinter as tk
from tkinter import filedialog
from ncmdump import dump
import threading

# 定义一个函数,用于选择输入文件夹
def select_input():
    global input_path # 定义一个全局变量,用于存储输入文件夹的路径
    input_path = filedialog.askdirectory() # 弹出一个对话框,让用户选择输入文件夹
    input_label.config(text=input_path) # 更新输入文件夹的标签

# 定义一个函数,用于选择输出文件夹
def select_output():
    global output_path # 定义一个全局变量,用于存储输出文件夹的路径
    output_path = filedialog.askdirectory() # 弹出一个对话框,让用户选择输出文件夹
    output_label.config(text=output_path) # 更新输出文件夹的标签

# 定义一个函数,用于遍历输入文件夹内所有的后缀为ncm的音乐,并转换成MP3格式并保存到输出文件夹
def convert():
    if input_path and output_path: # 如果输入文件夹和输出文件夹都已经选择
        for file in os.listdir(input_path): # 遍历输入文件夹内的所有文件
            info_label.config(text="正在转换:" + file) # 更新信息标签,显示正在转换的文件名
            if file.endswith(".ncm"): # 如果文件的后缀是ncm
                file_path = os.path.join(input_path, file) # 获取文件的完整路径
                dump(file_path) # 调用ncmdump模块的dump函数,将ncm文件转换成MP3格式并保存到输出文件夹
        # info_label.config(text="转换完成!") # 更新信息标签,显示转换完成
    else: # 如果输入文件夹或输出文件夹没有选择
        info_label.config(text="请先选择输入文件夹和输出文件夹!") # 更新信息标签,提示用户先选择输入文件夹和输出文件夹

    # 将输入文件夹中的MP3文件移动到输出文件夹
    for file in os.listdir(input_path): # 遍历输入文件夹内的所有文件
        if file.endswith(".mp3") or file.endswith(".flac"): # 如果文件的后缀是mp3或flac
            info_label.config(text="转换完成,正在移动文件:" + file) # 更新信息标签,显示正在移动的文件名
            file_path = os.path.join(input_path, file)  # 获取文件的完整路径
            try:
                os.rename(file_path, os.path.join(output_path, file))  # 将文件移动到输出文件夹
            # 如果文件已经存在,就覆盖
            except FileExistsError:
                os.remove(os.path.join(output_path, file))
                os.rename(file_path, os.path.join(output_path, file))

    info_label.config(text="完成!")  # 更新信息标签,显示转换完成
def convert_thread():
    t = threading.Thread(target=convert)
    t.start()

# 创建一个tkinter窗口
window = tk.Tk()
window.title("ncm转mp3软件-qq 915471697") # 设置窗口的标题
window.geometry("400x200") # 设置窗口的大小

# 创建一个输入文件夹的标签,并放置在窗口中
input_label = tk.Label(window, text="请选择输入文件夹")
input_label.pack()

# 创建一个按钮,用于选择输入文件夹,并放置在窗口中
input_button = tk.Button(window, text="选择", command=select_input)
input_button.pack()

# 创建一个输出文件夹的标签,并放置在窗口中
output_label = tk.Label(window, text="请选择输出文件夹")
output_label.pack()

# 创建一个按钮,用于选择输出文件夹,并放置在窗口中
output_button = tk.Button(window, text="选择", command=select_output)
output_button.pack()

# 创建一个按钮,用于开始转换,并放置在窗口中
convert_button = tk.Button(window, text="开始转换", command=convert_thread)
convert_button.pack()

# 创建一个信息标签,用于显示转换进度或提示信息,并放置在窗口中
info_label = tk.Label(window, text="")
info_label.pack()

# 启动tkinter主循环,显示窗口并等待用户操作
window.mainloop()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qwqqq2

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值