省时又方便:使用该工具在SD卡上备份你的音乐库(python)

该程序读取或创建config.ini配置文件,获取或选择源文件夹和目标文件夹,然后使用Tkinter界面让用户点击按钮复制源文件夹中的.mp3文件到目标文件夹,同时更新配置文件保存路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     在这个程序中,我们首先读取或创建一个名为config.ini的配置文件,并检查其中是否有存储的源文件夹和目标文件夹路径。如果没有,创建了一个Tkinter窗口并隐藏了它。我们使用filedialog模块的askdirectory()函数分别选择源文件夹和目标文件夹,并将它们的路径分别赋值给source_foldertarget_folder变量。更新config.ini文件以保存最近使用的源文件夹和目标文件夹路径。最后,我们创建了一个Tkinter窗口和一个按钮,并将copy_mp3_files()函数绑定到按钮的点击事件中。当用户单击“复制”按钮时,遍历源文件夹中的所有文件,对于以.mp3结尾的文件,使用shutil模块的copy2()函数将其复制到目标文件夹中并输出“复制完成!”消息。

import tkinter as tk
from tkinter import filedialog
import os
import shutil
import configparser
# 读取或创建config文件
config = configparser.ConfigParser()
if not os.path.exists('config.ini'):
    config['DEFAULT'] = {'source_folder': '', 'target_folder': ''}
    with open('config.ini', 'w') as configfile:
        config.write(configfile)
else:
    config.read('config.ini')
# 获取源文件夹和目标文件夹路径
source_folder = config['DEFAULT']['source_folder']
target_folder = config['DEFAULT']['target_folder']
if not source_folder:
    # source_folder = input('请输入源文件夹路径:')
    # 选择源文件夹
    source_folder = filedialog.askdirectory(title='选择源文件夹')
    if not source_folder:
        print('未选择源文件夹。')
        exit()
    
if not target_folder:
    # target_folder = input('请输入目标文件夹路径:')    
    # 选择目标文件夹
    target_folder = filedialog.askdirectory(title='选择目标文件夹')
    if not target_folder:
        print('未选择目标文件夹。')
        exit()
        
# 创建Tkinter窗口
root = tk.Tk()
root.withdraw() # 隐藏窗口




# 定义复制函数
def copy_mp3_files():
    for filename in os.listdir(source_folder):
        if filename.endswith('.mp3'):
            source_path = os.path.join(source_folder, filename)
            target_path = os.path.join(target_folder, filename)
            shutil.copy2(source_path, target_path)
    print('复制完成!')

# 创建Tkinter窗口和按钮
window = tk.Tk()
window.title('复制MP3文件')
window.geometry('300x100')
copy_button = tk.Button(window, text='复制', command=copy_mp3_files)
copy_button.pack(pady=20)

# 更新config文件
config['DEFAULT']['source_folder'] = source_folder
config['DEFAULT']['target_folder'] = target_folder
with open('config.ini', 'w') as configfile:
    config.write(configfile)

# 运行窗口
window.mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值