需求环境
这是公司的一个需求,有一份很庞大的数据由好多视频文件组成,总共有12T左右,视频来源是一些下载的视频素材。每隔一段时间就要将一部分筛选好的视频文件剪切
到server02服务器进行转码,筛选没被选中的文件将被删除。从下载的图可以了解到:
- serve01,下载服务器,同时还担任筛选的角色;
- serve02,转码服务器
- serve03,存储服务器
问题与需求
时间一长管理员不记得哪些文件已经被下载过了,哪些文件下载好之后被筛选掉了,哪些文件已经被server02剪切走了。
问题分析
- server01上出现下载重复的问题,按理说server02和server03上面有的文件,不可能在出现在server01上
- server01上不知道哪些文件下载好之后被筛选掉了;
- server01上不知道哪些文件已经被server02剪切走了。
解决办法
在server01上面创建 == “索引”==,索引分三大类:
- 删除文件索引:筛选没被选中的文件被删除前,创建筛选被过滤掉的文件索引;
- 转码文件索引:server02上面正在转码的文件索引;
- 存储文件索引:server03上存储的文件索引
索引文件要求:
- 必须是视频文件(管理软件仅识别视频文件);
- 不能占用太多磁盘空间
- 遍历方便
索引类型
用txt空文件更改后缀为MP4,冒充视频文件,而且几乎是0字节
分别提取:删除文件名、转码文件名、存储文件名
import os
# 将文本内的名称转成一个列表
data = "i38100.txt" #源数据文件
#提取文件名
with open(data,"r", encoding="UTF-8") as f:
for line in f:
in_name = os.path.basename(line)
print(in_name)
#创建文件
path = "./suoyin/"
bname=path+in_name
out_name =bname.strip('\n')
print(out_name)
#判断./suoyin/目录是否存在,存在就在其下创建索引,不存在则先创建./suoyin/,再创建索引
if os.path.exists(path):
#目录存在则创建文件
print("文件创建成功")
f = open(out_name,"w",encoding="UTF-8")
f.write(out_name)
else:
#不存在则先创建目录
print("没有suoyin目录,正在创建")
os.makedirs(path)
f = open(out_name,"w",encoding="UTF-8")
f.write(out_name)