由于断点下载的问题,遗留了许多未下载完,未合并的文件,下面程序进行将这些文件夹中的视频合并并删除。
代码比较简单:
'''将指定路径文件下的所有文件夹中的ts文件全部合成并删除'''
import requests
import re,os,shutil
class Download_ts():
def __init__(self):
self.session = requests.session()
self.num=1
self.path ='D:/Kugou/wuma/'
self.c(self.path)
def compose_mp4(self, p): # 传入文件夹路径
print('开始合成视频。。')
name = p.split('/')[-1] # 文件名
file_path = '%s' % self.path + '%s.mp4' % name
f = open(file_path, 'ab+')
for ts_path in self.get_all_mp4_slice(p):
with open(ts_path, 'rb') as ff:
fff = ff.read()
f.write(fff)
f.close()
print('视频合并完成!')
if os.path.exists(p):
shutil.rmtree(p, True)
print('视频碎片已删除!')
def get_all_mp4_slice(self,p): #获取文件夹路径中所有的ts路径
n = self.ts_num(p)
for i in range(n):
ts_path='%s/%s' % (p,i + 1) + '.mp4'
yield ts_path
def ts_num(self, p): # 获取文件夹路径里文件的数量
for root, dirs, files in os.walk(p):
return len(files)
def c(self, p):
for i in os.listdir(p):
if not os.path.isfile(os.path.join(p, i)): #寻找到文件夹
dir1=os.path.join(p, i) #文件夹路径
name=dir1.split('/')[-1] #文件夹的名称
print('开始合成视频。。')
file_path = '%s' % self.path + '%s.mp4' % name
f = open(file_path, 'ab+')
for ts_path in self.get_all_mp4_slice(dir1):
with open(ts_path, 'rb') as ff:
fff = ff.read()
f.write(fff)
f.close()
print('视频合并完成!')
if os.path.exists(p):
shutil.rmtree(p, True)
print('视频碎片已删除!')
if __name__ == '__main__':
Download_ts()