当前位置: 首页 > news >正文

【办公类-19-03】办公中的思考——Python批量统一文件名的序号(保教主任整理打印文件)

背景需求:

为迎接督导检查,保教主任从各条线收集文本资料。并在每个文件名称前手动编号。但是她嘀咕道:”为什么两套资料放在一个文件里就不是按照数字序号排序?,有的是1X-,有的是40X,看起来很乱”

我提示她按“名称”把文件名排序,果然实现了“先1后4”数字排序模式。

同时我也看到,她用了两类数字格式:第一类是“工作计划,编号为1-X;第二类为考评表,编号为40X。看起来模式不统一。

”幸好这些文件只有2位数的数量,要是100份,还要编号3位数001-999“

于是我自告奋勇,要调整所有的数字序号为”0X-XX (空格)“的样式(不超过50份,两位数)

思路:

  1. 分析现有首数字情况:

(1)第一种是三个字符”1-X“,变成6个字符(0X-XX(空格))

(1)第二种是三个字符”40X“,变成6个字符(04-XX(空格))

一开始,我尝试用”某个字“切割然后拼接的方法,比如数字4作为分割点,拼接新的名字,

但是出现了404这个docx后面的名称都不见的问题。(要因为有两个4,但是提取时只选择第1个4到第2个4之间的信息。第2个4后面的文件名被忽略。

所以分割改名法不是完全通用的改名神器,而要使用”正则表达式“提取需要保留的部分

第一步:分类(两个格式——401类&1-1类)

第1步:简单——修改401类

特点:18分文件名都是前3位数(占3个位置,并且与后面文件名中间没有空格),改成“04-01(空格)”的格式

思路:第1个4是共有的,需要改成“04-”,第2-3位数字是号码,序号变成“01 ”“02 ”……“18 ”(后面有空格)

import os
import timepath =r"C:\Users\jg2yXRZ\OneDrive\桌面\2023年2月督导室检查资料 - 副本\401"fileList=os.listdir(path)a=1
for file in fileList:    # 04-是共有的信息,后面2-3位是a的变化数字默认2位数,# file[3:]代表文倩前三个数字被删除,保留2个数字后面部分的信息(包含docx)newname='04-{} '.format('%02d'%a)+file[3:]# 文件旧路径oldname_path = os.path.join(path,file)# 文件新路径newname_path = os.path.join(path,newname)# 新旧对调os.rename(oldname_path, newname_path)  a+=1

关键点

第2步:略复杂——修改1-1类

特点:18分文件名都是前3位数(占3个位置,与文件名中间部分有空格,部分无空格),改成“04-01(空格)”的格式

思路:第1个数字有1、2、3,第2个字是“-”,第3-4位有1位数、也有2位数。需要改成“0X-0X”

问题:由于1-X这套文件中前面数字的长度不统一,所以修改起来略复杂

步骤1:因为有一个1-10,所以先通过'-',把数字改成0x-0X(10前面也加0)

import os
import timepath =r"C:\Users\jg2yXRZ\OneDrive\桌面\2023年2月督导室检查资料 - 副本\1-1 - 副本"
fileList=os.listdir(path)
# a=1
for file in fileList:    split_str = file.split('-')newname1 = split_str[0]  # _的第0部分=序号 print(newname1)newname2= split_str[1]  # _的第0部分=序号 print(newname2)newname='0'+newname1+'-0'+newname2# 文件旧路径oldname_path = os.path.join(path,file)# 文件新路径newname_path = os.path.join(path,newname)# 新旧对调os.rename(oldname_path, newname_path)  

因为就1个01-010,所以我就手动删除了左边的0(见下图),保证前面四个数字占五个格子——“0X-0X”

步骤2:删除各种空格(序号与汉字之间有不同长度的空格)

import os
import timepath =r"C:\Users\jg2yXRZ\OneDrive\桌面\2023年2月督导室检查资料 - 副本\1-1 - 副本"
for filename in os.listdir(path):newName = str(filename)newName = newName.replace(' ', '') #此处可以自行修改变成去除空格or去除逗号等等os.rename(os.path.join(path,filename),os.path.join(path,newName))print("文件: ",filename,"——>",newName," 重命名已完成!")

步骤3,提取前5个字、提取后N个汉字,中间加空格

import os
import timepath =r"C:\Users\jg2yXRZ\OneDrive\桌面\2023年2月督导室检查资料 - 副本\1-1 - 副本"fileList=os.listdir(path)for file in fileList:    # file[0:5]代表文件前5个数字,file[5:]代表文件前后面的所有汉字和后缀),组合后中间加空格newname1=file[0:5]newname2=file[5:]newname=newname1+' '+newname2# 文件旧路径oldname_path = os.path.join(path,file)# 文件新路径newname_path = os.path.join(path,newname)# 新旧对调os.rename(oldname_path, newname_path)  

所有的号码都统一了(前后对比)

为什么运行前最后的编号是418(4号文件18′),运行后编号04-19(4号文件19份)?

查了一下,原来之前保教主任提供的文件是手动编号,其中有错误(编了两个415后面416-418实际少了;但用Python遍历循环编a=1 a+=1中,就会自动生成19个数字,

启示

因此,用Python编号不仅比人工编号速度块,同时也比人工编号准确度高,也有批量修改编号的可能性(编号数字后面加空格,便于切割修改)

相关文章:

【办公类-19-03】办公中的思考——Python批量统一文件名的序号(保教主任整理打印文件)

背景需求:为迎接督导检查,保教主任从各条线收集文本资料。并在每个文件名称前手动编号。但是她嘀咕道:”为什么两套资料放在一个文件里就不是按照数字序号排序?,有的是1X-,有的是40X,看起来很乱…...

MySQL约束

约束约束总结约束 1、概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2、目的:保证数据库中数据的正确、有效性和完整性。 3、分类: 注意:约束是作用于表中字段上的,可以在创建表/修改表…...

x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建

文章目录[toc]关于 docker 版本查看是否开启 experimental 功能开启 experimental 功能查看当前环境平台拉取一个 arm 平台的容器运行一个 arm 平台的容器整一个 qemu-user-static注册可支持的架构解释器尝试启动 arm64 镜像尝试启动 ppc64le 镜像后台运行 arm64 容器build 一个…...

找工作经验分享

好的简历的特点:简洁:不要使用花里胡俏的简历模板,一般就是一行行写下来那种就行主次分明:一定要有重点,让面试了解你强项是什么首先当然是突出技术,不要花大批篇幅在个人信息、兴趣爱好等,重点…...

C语言学习之路--操作符篇,从知识到实战

目录一、前言二、操作符分类三、算术操作符四、移位操作符1、左移操作符2、右移操作符五、位操作符拓展1、不能创建临时变量(第三个变量),实现两个数的交换。2、编写代码实现:求一个整数存储在内存中的二进制中1的个数。六、赋值操…...

【华为OD机试2023】端口合并 C++ Java Python

【华为OD机试2023】端口合并 C++ Java Python 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收输入、…...

C++常用头文件整理

#include <iostream> 输入输出流&#xff0c;调用该函数使用cin&#xff0c;cout#include <iomanip> mainp是mainpular(操纵器)的缩写&#xff0c;可以调用一些函数&#xff0c;如fixed()<<setprecision()等#include <cmath> 调用数学函数#include &l…...

Linux内核4.14版本——drm框架分析(2)——connector分析

目录 1. drm_connector结构体 1.1 struct list_head head 1.2 struct drm_mode_object base 1.3 base.properties 1.4 uint32_t encoder_ids[DRM_CONNECTOR_MAX_ENCODER] 1.5 struct drm_encoder *encoder 1.6 struct list_head probed_modes 1.7 struct list_head mod…...

dev GridControl 按条件纵向合并单元格

dev GridControl 按条件纵向合并单元格 gridView5.OptionsView.AllowCellMerge true; gridView5.CellMerge gridView5_CellMerge; //自定义合并单元格监听事件void gridView5_CellMerge(object sender, DevExpress.XtraGrid.Views.Grid.CellMergeEventArgs e){int rowHandle1…...

aws eks 集群初始化过程中pause容器的启动逻辑

eks集群默认策略在磁盘使用量达到threshold时会清除镜像&#xff0c;其中pause镜像也可能会被清除 https://aws.amazon.com/cn/premiumsupport/knowledge-center/eks-worker-nodes-image-cache/ pause容器能够为pod创建初始的名称空间&#xff0c;pod的内的容器共享其中的网络空…...

Numpy专栏目录(长期更新)

文章目录数组基础文件与字符串多项式分布Numpy绝对可以说是支撑Python地位的最重要的包了&#xff0c;几乎所有能叫出名的Python计算库&#xff0c;都不可避免地调用了Numpy&#xff0c;Numpy官网也列出了一些&#xff0c;大致如下图这样&#xff0c;堪称科学计算领域的瑞士军刀…...

English Learning - L2 第1次小组纠音 [ɑː] [ɔː] [uː] 2023.2.25 周六

English Learning - L2 第1次小组纠音 [ɑː] [ɔː] [uː] 2023.2.25 周六共性问题分析大后元音 [ɑː]大后元音 [ɔː]后元音 [uː]我的发音问题后元音 [uː]大后元音 [ɑː] 和 [ɔː]纠音过程第一次第二次第三次共性问题分析 大后元音 [ɑː] 嘴唇过于松散&#xff0c;没…...

博客系统程序(页面设计)

咱们学习javaEE的目的就是完成一个网站.在当前学习的基础上,已经可以完成我们的博客系统的页面的设计了!!!首先我们要进行统筹规划:首先我们的博客页面将会有4个页面:1.博客列表页2.博客详情页显示一个博客的具体内容:3.登录页就是用户输入用户名和页面的地方4.博客编辑页发布新…...

【死锁的排查工具有哪些?】

死锁是指两个或多个进程&#xff08;线程&#xff09;相互等待对方持有的资源&#xff0c;导致无法继续执行的情况。在并发编程中&#xff0c;死锁是一个常见的问题&#xff0c;需要使用专门的工具来进行排查和解决。 以下是常用的死锁排查工具&#xff1a; jstack&#xff1a…...

JUC包:CyclicBarrier源码+实例讲解

1 缘起 上篇文章讲到了CountDownLatch&#xff1a;https://blog.csdn.net/Xin_101/article/details/129116170 作为同系的佼佼者&#xff0c;不得不提CyclicBarrier&#xff0c; 设计理念相似&#xff0c;都是多线程等待&#xff0c;但是&#xff0c;应用的技术以及功能不同&a…...

Trace、Metrics、Logging 选型

背景分布式追踪的起源自从微服务的兴起开始&#xff0c;整个系统架构开始变得极为庞大和复杂&#xff0c;但是服务之间的调用关系&#xff0c;调用消耗时间等等信息却依然是半黑盒的状态。为了能够将调用的链路进行串联&#xff0c;将系统的各种指标数据展示出来以使得系统的链…...

Java验证码

文章目录一、验证码概述二、Java原生验证码1、随机数字验证码2、随机数字和字母验证码3、运算验证码三、引入三方验证码一、验证码概述 验证码&#xff08;CAPTCHA&#xff09;是“Completely Automated Public Turing test to tell Computers and Humans Apart”&#xff08;全…...

5天带你读完《Effective Java》(四)

《Effective Java》是Java开发领域无可争议的经典之作&#xff0c;连Java之父James Gosling都说&#xff1a; “如果说我需要一本Java编程的书&#xff0c;那就是它了”。它为Java程序员提供了90个富有价值的编程准则&#xff0c;适合对Java开发有一定经验想要继续深入的程序员…...

探索密码学的未来:SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算

密码算法在现代通信与信息安全中发挥着至关重要的作用&#xff0c;SM1、SM2、SM3、SM4、同态加密、密态计算、隐私计算和安全多方计算等密码算法被广泛应用于各种信息安全领域。本篇博客将会为大家介绍这些密码算法&#xff0c;以及它们在信息安全中的作用和应用。 一、SM1、SM…...

【教程】去水印开源工具Lama Cleaner在Windows的安装和使用

一、Lama Cleaner是什么&#xff1f; Lama Cleaner是一款开源且免费的人工学习图片去水印程序&#xff08;个人主要学习用途&#xff09;&#xff0c;没有图片分辨率限制&#xff08;个人使用暂未发现&#xff09;&#xff0c;并且保存的图片质量很高&#xff08;个人觉得跟原…...

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…...

树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频

使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源&#xff1a; http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

Objective-C常用命名规范总结

【OC】常用命名规范总结 文章目录 【OC】常用命名规范总结1.类名&#xff08;Class Name)2.协议名&#xff08;Protocol Name)3.方法名&#xff08;Method Name)4.属性名&#xff08;Property Name&#xff09;5.局部变量/实例变量&#xff08;Local / Instance Variables&…...

【磁盘】每天掌握一个Linux命令 - iostat

目录 【磁盘】每天掌握一个Linux命令 - iostat工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景 注意事项 【磁盘】每天掌握一个Linux命令 - iostat 工具概述 iostat&#xff08;I/O Statistics&#xff09;是Linux系统下用于监视系统输入输出设备和CPU使…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

CSS设置元素的宽度根据其内容自动调整

width: fit-content 是 CSS 中的一个属性值&#xff0c;用于设置元素的宽度根据其内容自动调整&#xff0c;确保宽度刚好容纳内容而不会超出。 效果对比 默认情况&#xff08;width: auto&#xff09;&#xff1a; 块级元素&#xff08;如 <div>&#xff09;会占满父容器…...

推荐 github 项目:GeminiImageApp(图片生成方向,可以做一定的素材)

推荐 github 项目:GeminiImageApp(图片生成方向&#xff0c;可以做一定的素材) 这个项目能干嘛? 使用 gemini 2.0 的 api 和 google 其他的 api 来做衍生处理 简化和优化了文生图和图生图的行为(我的最主要) 并且有一些目标检测和切割(我用不到) 视频和 imagefx 因为没 a…...