生信人

找回密码
立即注册
搜索
热搜: 活动 交友 discuz
发新帖

0

收听

12

听众

338

主题
发表于 2024-12-18 23:18:12 | 查看: 20| 回复: 0

今天,我们来整理文件夹中的文件,给某个文件夹下的所有文件重新命名。要求是给所有文件按照修改时间,按顺序在文件名前面加上编号。比如将文件 资料.xlsx重命名为 1. 资料.xlsx

import os

def Get_modify_time(file):
    return os.path.getmtime(file) #获取文件修改时间

path='文件'  #文件所在文件夹
files = [path+"\\"+i for i in os.listdir(path)] #获取文件夹下的文件名,并拼接完整路径
files.sort(key=Get_modify_time) #以文件修改时间为依据升序排序

files
['文件\\资料.xlsx',
 '文件\\文档.txt',
 '文件\\说明.docx',
 '文件\\演示文稿 - v1.pptx',
 '文件\\演示文稿.pptx']

以上,我们先导入 os模块,用于处理文件及目录等。然后定义了一个函数,用于获取文件的修改时间,以便后续通过文件修改时间来进行排序编号。然后获取文件夹下的文件名的完整路径,存入列表 files,并调用 Get_modify_time函数将列表中的元素按文件修改时间排序。不然系统会自动按字母顺序(汉字按首字的拼音字母顺序)排序。可以看到 files已储存 文件文件夹下的所有5个文件。

seq = 1 #计数器,从1开始
for file in files:
    os.rename(file, os.path.join(path, str(seq) + ". "+ file.split("\\")[-1])) #重命名文件
    seq += 1

随后就可以批量重命名文件了。由于我们的目的是给文件加编号,从1开始,所以要先定义一个计数器 seq,初始值设为1,每重命名一个文件就增加1。然后遍历所有待命名的文件,使用 os.rename()按要求进行重命名操作。os.rename()有两个参数,分别代表当前的文件名和重命名后的文件名。比如 os.rename("A","B")就表示将名字为A的文件命名为B。os.path.join()用于拼接文件路径,比如如下操作,它自动将'文件'和"abc.docx"按照路径的方式拼接起来了。

os.path.join('文件',"abc.docx")
'文件\\abc.docx'

程序运行完成后,结果如下。

收藏回复 显示全部楼层 道具 举报

您需要登录后才可以回帖 登录 | 立即注册

QQ|Archiver|手机版|小黑屋|生信人 ( 萌ICP备20244422号 )

GMT+8, 2024-12-28 01:16 , Processed in 0.070847 second(s), 32 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表