Python对歌曲文件批量处理

Posted by tianhaoo on May 23, 2018 本文阅读量

从网上下载了全部的Taylor swift的歌,打算传到qq音乐的网盘里便于随时听歌。可是下载下来的文件是.flat和.mp3和.lrc文件混合在一起的,我不需要.lrc和.jpg甚至.log文件,几百首歌手动分太不geek了,于是想到利用python的os库写一个脚本自动处理。

用到的函数

参考

  • os.getcwd()返回当前工作目录

  • os.chdir(path)改变当前工作目录

  • access()方法语法格式如下:

  • os.access(path, mode) 参数 path – 要用来检测是否有访问权限的路径。

    mode – mode为F_OK,测试存在的路径,或者它可以是包含R_OK, W_OK和X_OK或者R_OK, W_OK和X_OK其中之一或者更多。

    os.F_OK: 作为access()的mode参数,测试path是否存在。 os.R_OK: 包含在access()的mode参数中 , 测试path是否可读。 os.W_OK 包含在access()的mode参数中 , 测试path是否可写。 os.X_OK 包含在access()的mode参数中 ,测试path是否可执行。

  • os.listdir(path)返回path指定的文件夹包含的文件或文件夹的名字的列表。

  • 魔术一般的函数endswith()

    语法:

    str.endswith(suffix[, start[, end]])

    参数

    suffix – 该参数可以是一个字符串或者是一个元素。 start – 字符串中的开始位置。 end – 字符中结束位置。

实操

import os
import shutil

path = "F:/TaylorSwift"


folders = os.listdir(path)
count = 0
for folder in folders:
    print(folder)
    subFiles = os.listdir(path+"/"+folder)
    for subFile in subFiles:

        print(subFile)
        if subFile.endswith('.flac') or subFile.endswith('.mp3'):
            shutil.copy(path+'/'+folder+'/'+subFile, 'F:/TaylorSwiftCopy/'+subFile)
            count += 1

print("一共移动了" + str(count) + "首歌\n\n\n")

结果很成功,学到了一点magic的函数,python真好用