文件重命名及音频格式转换

"""
作业:文件下载、重命名并转换格式
输入文本,其中逐行内容如下所示:
短视频;1000553228;0;;娱乐;78.67;1007;http://138620-large-data.oss-cn-zhangjiakou.aliyuncs.com/system_eval_data_2/1000553228_0.mp4

输出:20190917_duanshipin_yule_1000553228_0.wav
要求:以“;”为分隔符,取第一列和第五列内容的拼音加上当天日期作为前缀,例如:下载后的数据重命名为:20190917_duanshipin_yule_1000553228_0.mp4
下载后进行格式转换,格式转换可参考:./ffmpeg -i input.mp4 -vn -acodec pcm_s16le -ar 16k -ac 1 output.wav
要求用脚本完成,可以是shell也可以是python或perl等。
"""

import datetime
import os


# 重命名文件名
def rename():
    str_base = "短视频;1000553228;0;;娱乐;78.67;1007;http://138620-large-data.oss-cn-zhangjiakou.aliyuncs.com/system_eval_data_2/1000553228_0.mp4"
    a = str_base.split(";")

    # 获取当前日期
    now_date = datetime.datetime.now().date().__str__().replace("-", "")
    str_map = {
        "短视频": "duanshipin",
        "娱乐": "yule"
    }
    res_name = now_date + "_" + str_map[a[0]] + "_" + str_map[a[4]] + "_" + a[-1].split("/")[-1]
    # 文件重命名为
    print(res_name)  # 20201029_duanshipin_yule_1000553228_0.mp4
    return res_name


# 格式转换
def mp4_to_wav(mp4_path, wav_path, sampling_rate):
    """
    mp4 转 wav
    :param mp4_path: .mp4文件路径
    :param wav_path: .wav文件路径
    :param sampling_rate: 采样率
    :return: .wav文件
    """
    # 如果存在wav_path文件,先删除。
    if os.path.exists(wav_path):  # 如果文件存在
        # 删除文件,可使用以下两种方法。
        os.remove(wav_path)
        # 终端命令
    command = "ffmpeg -i {} -ac 1 -ar {} {} && y".format(mp4_path, sampling_rate, wav_path)
    print('命令是:',command)
    # 执行终端命令
    os.system(command)


if __name__ == '__main__':
    # 获取文件名
    name = rename()
    mp4_path = os.getcwd() + "/" + name
    wav_path = os.getcwd() + "/" + name.split(".")[-1]
    sampling_rate = 16000
    mp4_to_wav(mp4_path, wav_path, sampling_rate)



©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页