python:电脑硬盘视频文件的批量压缩替换程序

作为一名技术人员,电脑硬盘上存的许多视频都是教程、录像,而非电影。
这些长期保存的视频文件,如果能够有效压缩,则对我们帮助甚大。

小丸工具箱

我一般使用 小丸工具箱 进行压缩。这是目前公认的最好用的压缩软件。
百度网盘链接:https://pan.baidu.com/s/1dRGMXBsKUGZ2tFlT0ZnJ7Q 提取码:6666

此软件的功能是:
1,使用软件功能1,扫描电脑某个分区的所有视频文件,将它们复制集中到一个文件夹中。
2,用户手动 使用 小丸工具箱,进行压缩。
3,使用软件功能2,替换视频文件。

说明:小丸工具箱,可进行多个视频的批量压制。 压制编码,我一般选择x264_32_8bit,CRF参数默认的23或23.5即可。

背景:上周从非洲马里回国,现在上海隔离。看了python教程,编写了这个对我来说很实用的程序,第一个python程序。

源码

源代码子函数比较多,有比较简单。就不一一贴上了。
资源在:https://download.csdn.net/download/puff1987/22319079?spm=1001.2014.3001.5503

项目思路

  1. 用户使用此软件的功能1,选择将E盘的符合条件的视频,都复制到指定文件夹。
  2. 用户手动启动“小丸工具箱”,转换视频。
  3. 用户继续使用此软件的功能2,选择将转换后的视频、替换原视频。

我使用此软件将E盘中的480个视频进行了转换,视频总大小80G.左右。

功能1:复制

当用户选择功能1时,将输入路径,实现复制。

if __name__ == '__main__':
    MessageFilePath = 'CopyMessage.xlsx'
    postfix = '_batch.mp4'  # 后缀名词
    ChoiceNum=ChoiceNumFunction()
    #ChoiceNum =2    #测试时,方便。
    if ChoiceNum==1:
        source_dir, target_dir = ChoiceDirFunction()
        #source_dir='E:/公司内部培训资料/2016-1-18超声传感器讲解说明'
        #target_dir='E:/潜龙勿用'

        Filelist = getAllSub(source_dir)
        FileListResult = []
        FileListResult=JudgeFile(Filelist)
        CopyMessage = Configuration(FileListResult,target_dir)
        xw_toExcel(CopyMessage, MessageFilePath)
        print('**********')
        print(CopyMessage)
        print('**********')
        i=1
        for MessageRow in CopyMessage:
            Num=mycopy(MessageRow[0],MessageRow[1])
            if not Num:
                print('此文件复制失败',MessageRow[0],MessageRow[1])
            print('当前复制进度为{0}/{1}'.format(str(i),str(len(CopyMessage))))
            i+=1

功能2:替换

当用户选择功能2时,将 实现视频文件替换。


    elif ChoiceNum==2:
        print('\n在将压缩后的视频替换原路径视频之前,您可以在CopyMessage.xlsx文件中配置第三列,选择不替换某些文件。\n')
        ti=str(input('是否开始替换文件?y/n ='))
        if ti=='y':
            ReadMessage = []
            ReadMessage = ReadCopyMessage(MessageFilePath)
            ExM=ExtendMessage(ReadMessage)
            i=1
            print('\n')
            for MessageRow in ExM:
                #print(i,'------',MessageRow)
                if MessageRow[2]>0:    #使能开关
                    Num=mycopy(MessageRow[4],MessageRow[5])
                    if not Num:
                        print('此文件复制失败',MessageRow[4],MessageRow[5])
                    else:
                        ExM[i-1][3]=True
                        if os.path.exists(MessageRow[5])&os.path.exists(MessageRow[0]):  #确定复制成功后,删除最原始视频文件。
                            DelFile(MessageRow[0])
                            #print('已删除:',MessageRow[0])

                else:
                    pass
                print('****当前复制进度为{0}/{1}\t\t目标路径为:{2}'.format(str(i), str(len(ExM)),MessageRow[5]))
                i += 1

                '''if i >= 1:  # 测试用。  只运行少数几个文件进行测试。
                    #print(MessageRow)
                    break'''

            xw_toExcel(ExM, MessageFilePath)
            print('\n\t替换工作已经完成。\n\t您可以通过',MessageFilePath,'表格文件查看转换结果')
            PathTar,File2=os.path.split(ExM[0][1])
            print('\t您可以手动删除',PathTar,'文件夹下的所有文件。')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小小脚色008

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值