欢迎光临UUpython
最大、最新、最全的Python代码收集站

os模块重命名手机照片

这段代码是用来将特定文件夹内的 .jpg 图像文件按照一定规则进行重命名的操作。这里的规则是将文件名中 IMG_ 后的数字部分提取出来,并以数字的顺序重新命名文件。

以下是代码的主要部分:

  1. reg 正则表达式对象:用于从文件名中提取 IMG_ 后的数字部分。
  2. path:需要进行处理的文件夹路径。
  3. os.walk(path):遍历路径下的所有文件和子文件夹,获取每个文件夹的路径(dirpath)、子文件夹列表(_)和文件名列表(filename)。
  4. glob(osp.join(dirpath, '*.jpg')):使用 glob 函数获取当前文件夹下所有 .jpg 文件的列表。
  5. 遍历 jpgs 列表,对每个 .jpg 文件进行处理:
  • 提取文件名中的数字部分。
  • 使用索引加一(格式化为两位数)作为新的文件名。
  • 构建新的文件路径 dst
  • 使用 os.rename() 函数进行重命名。

注意:

  • 该代码根据文件名中 IMG_ 后的数字部分进行重命名,但在文件名中没有 IMG_ 的情况下,可能会出现错误。你可能需要添加一些条件来处理这种情况。
  • 在进行文件重命名时,需要确保新的文件名是唯一的,否则可能会覆盖已有的文件。在你的代码中,使用索引 jpgs.index(jpg) 确保了新文件名的唯一性。
  • 代码中有一段注释掉的部分,似乎是将文件名中的 '微信截图' 替换为 'IMG',但是这段代码没有被执行,你可以根据需要进行调整。
  • 文件操作涉及文件重命名,建议在实际操作前备份文件,以防止意外的数据损失。
import os
import os.path as osp
import re
import shutil
from glob import glob
reg=re.compile(r'(?<=IMG_).*')
 
path=r'./'
for dirpath,_,filename in os.walk(path):
        jpgs=glob(osp.join(dirpath,'*.jpg'))        
        if jpgs:
                for jpg in jpgs:
                        name,_=osp.splitext(jpg)
                        nm=osp.basename(name)
                        mat=reg.search(nm)
                        if mat:
                                res=str(jpgs.index(jpg)+1).zfill(2)
                                print(res)
                                src=jpg
                                dst=osp.join(dirpath,res+'.jpg')
                                os.rename(src,dst)
                                 
 
# for dirpath,_,filename in os.walk('./'):
#   jp=glob(osp.join(dirpath,'*.jpg'))
#   for s in jp:
#       jg=s.replace('微信截图','IMG')
#       os.rename(s,jg)                                
赞(0) 打赏
未经允许不得转载:UUpython » os模块重命名手机照片
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!