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