pythpon基础:创建文件索引升级版

news2025/1/13 14:05:38

需求环境

这是公司的一个需求,有一份很庞大的数据由好多视频文件组成,总共有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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/178910.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5. 蒙特卡洛方法

蒙特卡洛方法5. 离轨策略5.1 策略评估(基于重要度采样)5.1.1 计算目标策略下的状态值5.1.2 蒙特卡洛算法(状态值估计)5.1.3 增量式的实现5.2 策略迭代5.3 减少重要性采样方差的方法5.3.1 折扣敏感的重要性采样5.3.2 每决策重要性抽…

go 语言 string 类型思考

string 作为 go 语言中的基础类型,其实有一些需要反复揣摩的,可能是我们使用的场景太简单,也可能是我们不需要那可怜的一点优化来提高性能,对它也就没那么上心了。 文章运行环境:go version go1.16.6 darwin/amd64 并…

浅析Java中的final关键字

一.final关键字的基本用法 在Java中,final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。 1.修饰类 当用final修饰一个类时,表明这个类不能被继承。也就是说&a…

ACL访问控制的基本实例

典型案例: 配置需求∶ 在Router上部署基本ACL后,ACL将试图穿越Router的源地址为192.168.1.0/24网段的数据包过滤掉,并放行其他流量,从而禁止192.168.1.0/24网段的用户访问Router右侧的服务器网络。 配置: 1、Router已…

第三章 变量

一、数据类型(P40) 每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间(字节)。二、整数类型 整型的使用细节: (1)Java 各整数类型有固定的范围和字段长度,不受具体OS【操作系…

Java多线程(四)——ThreadPoolExecutor源码解析

ThreadPoolExecutor源码解析 多线程场景下,手动创建线程有许多缺点: 频繁创建、销毁线程会消耗大量 CPU 资源,销毁线程后需要被回收,对 GC 垃圾回收也有一定的压力 使用线程池有许多好处: 降低 CPU 资源消耗。通过…

Linux运维之解决服务器挖矿木马问题

文章目录1 挖矿木马1.1 定义1.2 挖矿特征1.3 解决挖矿木马1.3.1 阻断异常网络通信(非必需)1.3.2 清除定时任务1.3.3 清除启动项1.3.4 清除SSH公钥1.3.5 清除木马进程1.4 其他常见问题1.4.1 清除木马后又100%1.4.2 CPU占用100%却看不到进程1 挖矿木马 1.…

Python OS 文件目录方法 os.walk()

Python OS 文件/目录方法 os.walk() 概述 os.walk() 方法用于通过在目录树中游走输出在目录中的文件名,向上或者向下。 os.walk() 方法是一个简单易用的文件、目录遍历器,可以帮助我们高效的处理文件、目录方面的事情。 在Unix,Windows中…

BFS(三)腐烂的橘子(感染问题)

994. 腐烂的橘子 在给定的 m x n 网格 grid 中,每个单元格可以有以下三个值之一: 值 0 代表空单元格; 值 1 代表新鲜橘子; 值 2 代表腐烂的橘子。 每分钟,腐烂的橘子 周围 4 个方向上相邻 的…

领导看到我自用的IDEA插件,也回去悄悄安装了...

现在哪有程序员离得开 Idea 啊!没有 Idea 的程序员那还有灵魂吗?那没有!既然我们都用 Idea,如何提高 Idea 的开发效率,在开发工具上,我们就卷掉其他小伙伴呢!今天鸡翅老哥就来给大家介绍几款我一…

函数的认识

文章目录 函数是什么库函数 自定义函数 函数参数 函数调用 函数的嵌套调用和链式访问 函数的声明和定义 函数递归一、函数是什么 维基百科中对函数的定义:子程序在计算机科学中,子程序(英语:Subroutine, procedure, functio…

SpringBoot+Vue项目课程作业管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

NodeJS Web 框架 Express 之路由

NodeJS Web 框架 Express 之路由参考描述路由路由匹配规则顺序匹配模块化创建使用前缀参考 项目描述哔哩哔哩黑马程序员搜索引擎Bing 描述 项目描述Edge109.0.1518.61 (正式版本) (64 位)NodeJSv18.13.0nodemon2.0.20Express4.18.2 路由 在 Web 中,路由可以理解为…

体验 micronaut 微服务框架

体验 micronaut 微服务框架谁在使用 MICRONAUT主要特点代码示例展示几点特性原生云原生安装 Micronaut 命令行工具创建一个 MICRONAUT 应用程序MICRONAUT是基于 JVM 的现代全栈框架,用于构建模块化、易于测试的微服务和无服务器应用程序。 谁在使用 MICRONAUT 主要…

数学建模——评价算法

层次分析法(AHP) 步骤 1.建立层次结构模型; 2.构造判断(成对比较)矩阵; 3.层次单排序及其一致性检验; 4.层次总排序及其一致性检验; 建立层次结构模型 将决策的目标、考虑的因素(决策准则)和决策对象按…

【HBase入门】5. 常用 Shell 操作(2)

前言 我们可以以shell的方式来维护和管理HBase。例如:执行建表语句、执行增删改查操作等等。 导入测试数据集 需求 在资料的 数据集/ ORDER_INFO.txt 中,有一份这样的HBase数据集,我们需要将这些指令放到HBase中执行,将数据导入…

申请Moonbeam Accelerator孵化计划申请答题指导

Moonbeam Accelerator是一个为期10 周的孵化计划,由Moonbeam基金会、Arrington Capital和Rokk3r共同推出,旨在帮助初创团队提高技术、业务、营销、金融和融资技能,助力您的Web3创业之梦。 申请孵化计划有任何限制吗?没有&#xff…

BFS(二)二叉树层序遍历(I、II)、二叉树锯齿形层序遍历、N叉树层序遍历

目录 102. 二叉树的层序遍历 107. 二叉树的层序遍历 II 103. 二叉树的锯齿形层序遍历 429. N 叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。…

VUE3/TS/TSX入门手册指北

VUE3入门手册vue3入门首先 查看 官方文档:https://cn.vuejs.org/guide/quick-start.html如果有vue2基础,速成课程:https://www.zhoulujun.co/learning-vue3/component.html(官方文档 还是建议 翻一遍)VUE3深入首先看源…

STM32+python产生三角波

目录任务目标实现方法python制作数表由于项目需要,需要产生一个三角波,需要覆盖4000个点的一个数组,这样的数组点数太多了,肯定不能自己一个一个手写了。最简单的一个方法是在嵌入式程序中用C写一个函数,对一个数组&am…