用代码帮妈妈整理歌曲
2019-03-03 本文已影响0人
ThomasYoungK
三八节快到了,我帮妈妈买了个飞利浦音乐播放器,需要往里面放一些歌曲,我搞了几百首歌,复制了进去。这个播放器可以输入数字选择歌曲,但是需要歌曲以数字开头。这可难不倒我,写段代码就可以重命名歌曲,命名规则是:
- 删除非mp3的文件
- 在歌曲前面填上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()
最后的歌曲是这个样子的:
![](https://img.haomeiwen.com/i258473/bef8aa2ff59074bf.png)
做完这一切我发现,播放器的数字和开头数字并不匹配,我试了好几种方案,也没有找到对应规律。我这么做只能保证“下一首”和“上一首”是按顺序的,就这样吧。