美文网首页
Python批量重命名本地文件

Python批量重命名本地文件

作者: yytester | 来源:发表于2018-10-19 00:11 被阅读35次

    有120张纸质文档,分为正反两面, 每个正面都有编号,从1-120. 需要正反两面全部拍照,然后重命名.


    操作步骤:

    1. 手机qq打开'我的电脑'聊天界面
    2. 拍照,发送
    3. 本机登录qq,自动接收文件,保存到本机.

    有两个问题:

    1. 由于文件的摆放问题,拍照是从编号120的文件开始的,最后拍到编号1的,一共240张图片
    2. 手机qq传给电脑qq的照片,被自动命名为15xxxxxx.jpg, 按拍照顺序,从小到大命名.(也就是说,文档编号越小的,拍照时间越晚,在电脑内此时命名越大) image.png

    思路:

    1. 把所有图片放到数组f里,过滤文件名后面的'.jpg'字符
    2. 数组从大到小排序
    3. 由于最后拍照的是编号1文档的反面,也就是数组下标为0的应该命名为1b,数组下标为1的应该命名为1a, 以此类推,设置文件名初始值n=1, 在数组的偶数位命名+b,奇数位命名+a,每到一个奇数位,n+1.

    脚本如下:

    import os
    import sys
    
    path = ('./ttt/')
    
    #获取该目录下所有文件,存入列表中
    f =os.listdir(path)
    print(len(f))
    
    #删除.jpg后缀,只要文件名前13位数字
    newarr = []
    for i in f:
        x = i[0:13]
        newarr.append(x)
        
    #文件名从大到小排序
    newarr.sort(reverse=True)
    
    
    
    n = 1
    
    for i in range(len(newarr)):
        oldname = path + newarr[i] +'.jpg'
        #第0,2,4...偶数位是反面,命名+b , 奇数位是正面,命名+a
        if i % 2 == 0 :
            newname = path + str(n) + 'b' + '.jpg'
        else:
            newname = path + str(n) + 'a' + '.jpg'
            n = n + 1
    
        #用os模块中的rename方法对文件改名
        os.rename(oldname,newname)
        print(oldname,'======>',newname)
        
        
    

    运行结果:

    image.png

    相关文章

      网友评论

          本文标题:Python批量重命名本地文件

          本文链接:https://www.haomeiwen.com/subject/flpezftx.html