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

该博客介绍了一个用于下载文件、重命名并转换格式的脚本。脚本通过解析输入文本,提取短视频类型和类别信息,结合当前日期生成新的文件名。然后使用ffmpeg进行mp4到wav的格式转换。提供了rename()函数来生成新文件名和mp4_to_wav()函数执行转换操作。

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

"""
作业:文件下载、重命名并转换格式
输入文本,其中逐行内容如下所示:
短视频;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)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值