在我的Django应用中,我正在将YouTube视频下载到MEDIA_ROOT
内的某个文件夹中。
我还将视频文件下方的下载文件与模型的FileField
关联起来。
当视频标题包含一些特殊字符时,会出现问题。例如,“白痴测试-90%失败”将被保存到磁盘中,而%
已删除,因此,通过视频标题将此文件与模型相关联时,我会收到一个错误消息,指出该文件不存在,因为我正在传递原始视频标题(不是从磁盘读取的视频标题)到包含FileField
的{{1}}。
我该如何解决?我应该首先去除任何特殊字符的视频标题吗?但是随后,我需要迎合不同操作系统所允许的功能。有更好的解决方案吗?
%
答案 0 :(得分:0)
我建议查看正则表达式
解决方案如下:
import re
video_title = re.escape(video_title)
downloaded_path = pytube.download(sampler_settings.AUDIO_PATH, video_title)
downloaded = File(open(downloaded_path, 'rb'))
...
文档here
让我知道这是否适合您:)