用代码帮妈妈整理歌曲

2019-03-03  本文已影响0人  ThomasYoungK

三八节快到了,我帮妈妈买了个飞利浦音乐播放器,需要往里面放一些歌曲,我搞了几百首歌,复制了进去。这个播放器可以输入数字选择歌曲,但是需要歌曲以数字开头。这可难不倒我,写段代码就可以重命名歌曲,命名规则是:

  1. 删除非mp3的文件
  2. 在歌曲前面填上3位数字,不足的补零, 与歌曲名以.分隔
  3. 原有的歌曲有数字的,要删掉数字
    代码如下:
import glob
from pathlib import Path
import shutil
import os

dir = '/Volumes/NO NAME/'


def change_names():
    os.chdir(dir)
    l = glob.glob('*')
    current_seq = 1
    for file in l:
        path = Path(file)
        extension = path.suffix
        music_name = path.stem
        if extension != '.mp3':
            print(path.name + ' is not mp3 music, I must delete it ')
            path.unlink()
            continue
        split_names = music_name.split('.')
        if len(split_names) == 1:
            new_file = f'{current_seq:03d}.' + music_name
        else:
            new_file = f'{current_seq:03d}.' + split_names[1]
        current_seq += 1
        new_file = new_file + '.mp3'
        shutil.move(file, new_file)


def ls_music():
    os.chdir(dir)
    l = glob.glob('*')
    l.sort(key=lambda file: int(file.split('.')[0]))
    for music in l:
        print(music)


if __name__ == '__main__':
    change_names()
    ls_music()

最后的歌曲是这个样子的:


image.png

做完这一切我发现,播放器的数字和开头数字并不匹配,我试了好几种方案,也没有找到对应规律。我这么做只能保证“下一首”和“上一首”是按顺序的,就这样吧。

上一篇 下一篇

猜你喜欢

热点阅读